Woziii commited on
Commit
6efda20
·
verified ·
1 Parent(s): db82878

Update contract_previewer.py

Browse files
Files changed (1) hide show
  1. contract_previewer.py +114 -46
contract_previewer.py CHANGED
@@ -1,8 +1,10 @@
1
  """
2
  Module pour la prévisualisation des contrats avant génération du PDF.
 
 
3
  """
4
  from contract_templates import ContractTemplates
5
- from utils import ensure_default_supports, sanitize_text
6
 
7
 
8
  def preview_contract(contract_type, is_free, author_type, author_info,
@@ -10,6 +12,7 @@ def preview_contract(contract_type, is_free, author_type, author_info,
10
  additional_rights, remuneration, is_exclusive):
11
  """
12
  Génère un aperçu du contrat sous forme de texte.
 
13
 
14
  Args:
15
  contract_type (list): Liste des types de contrats sélectionnés
@@ -34,35 +37,73 @@ def preview_contract(contract_type, is_free, author_type, author_info,
34
  # Initialiser l'aperçu avec le titre
35
  apercu = ContractTemplates.get_title(contract_type) + "\n\n"
36
 
37
- # Ajouter un extrait du préambule (simplifié pour l'aperçu)
38
- preamble_parts = ContractTemplates.get_preamble_text(contract_type, author_type, author_info).split("\n\n")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
- # Première partie du préambule (partie "ENTRE LES SOUSSIGNÉS" et infos parties)
41
- for i in range(min(6, len(preamble_parts))):
42
- if preamble_parts[i].strip():
43
- apercu += preamble_parts[i] + "\n\n"
 
 
 
44
 
45
- # Sauter au "CECI EXPOSÉ, IL A ÉTÉ CONVENU CE QUI SUIT :"
46
- for part in preamble_parts:
47
- if "CONVENU CE QUI SUIT" in part:
48
- apercu += part + "\n\n"
49
- break
50
 
51
- # Article 1 - Objet (extrait)
 
 
 
 
52
  apercu += "ARTICLE 1 – OBJET DU CONTRAT\n\n"
53
 
54
  if "Auteur (droits d'auteur)" in contract_type:
55
  apercu += "1.1 Œuvre concernée\n\n"
56
  apercu += f"L'Auteur déclare être le créateur et titulaire exclusif des droits d'auteur sur l'œuvre suivante :\n\n"
57
- apercu += f"{sanitize_text(work_description)}\n\n"
58
 
59
  if "Image (droit à l'image)" in contract_type:
60
  apercu += "1.2 Images concernées\n\n"
61
- apercu += f"Le Modèle autorise l'utilisation et l'exploitation de son image telle qu'elle apparaît dans les photographies/vidéos suivantes :\n\n"
62
- apercu += f"{sanitize_text(image_description)}\n\n"
63
 
64
- # Article 2 - Droits cédés (extrait)
65
  apercu += "ARTICLE 2 – ÉTENDUE DES DROITS CÉDÉS\n\n"
 
66
  apercu += "2.1 Nature de la cession\n\n"
67
  apercu += "L'Auteur cède au Cessionnaire, "
68
 
@@ -72,65 +113,92 @@ def preview_contract(contract_type, is_free, author_type, author_info,
72
  apercu += "à titre non exclusif, "
73
 
74
  if is_free:
75
- apercu += "gratuitement et pour la durée précisée à l'article 4, les droits patrimoniaux suivants.\n\n"
76
  else:
77
- apercu += "pour la durée précisée à l'article 4 et moyennant rémunération, les droits patrimoniaux détaillés au contrat.\n\n"
78
 
79
  apercu += "2.2 Droits patrimoniaux cédés\n\n"
80
- apercu += "Droits de base : reproduction et représentation"
 
81
 
82
  if not is_free and additional_rights:
83
- apercu += "\nDroits supplémentaires inclus :"
84
  for right in additional_rights:
85
- right_name = right.split(" - ")[0] if " - " in right else right
86
- apercu += f"\n- {right_name}"
87
-
88
- apercu += "\n\n"
89
 
90
- # Pour l'aperçu, ajouter les titres des autres articles
91
- article_num = 3
92
 
 
93
  if "Image (droit à l'image)" in contract_type:
94
- apercu += f"ARTICLE {article_num} AUTORISATION D'EXPLOITATION DE L'IMAGE\n"
95
- apercu += f"(Les détails complets seront inclus dans le contrat final)\n\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  article_num += 1
 
 
 
 
 
 
 
 
 
 
97
 
98
- apercu += f"ARTICLE {article_num} – DURÉE ET TERRITOIRE\n"
99
- apercu += "Durée : 1 an, renouvelable par tacite reconduction\n"
100
- apercu += "Territoire : monde entier\n\n"
101
  article_num += 1
102
 
103
- apercu += f"ARTICLE {article_num} – SUPPORTS D'EXPLOITATION\n"
104
- supports_str = ", ".join(final_supports)
105
- apercu += f"Supports autorisés : {supports_str}\n\n"
 
 
 
 
 
 
106
  article_num += 1
107
 
108
- apercu += f"ARTICLE {article_num} – RÉMUNÉRATION\n"
 
 
109
  if is_free:
110
- apercu += "La présente cession est consentie à titre gratuit.\n\n"
111
  else:
112
- apercu += f"Rémunération : {sanitize_text(remuneration)}\n\n"
 
113
  article_num += 1
114
 
115
  # Résumé des articles restants
116
- apercu += f"ARTICLE {article_num} – GARANTIES ET RESPONSABILITÉS\n"
117
  article_num += 1
118
- apercu += f"ARTICLE {article_num} – RÉSILIATION\n"
119
  article_num += 1
120
- apercu += f"ARTICLE {article_num} – DISPOSITIONS DIVERSES\n"
121
  article_num += 1
122
  apercu += f"ARTICLE {article_num} – LOI APPLICABLE ET JURIDICTION COMPÉTENTE\n\n"
123
 
 
124
  apercu += "Fait à ________________, le ________________\n\n"
125
  apercu += "En deux exemplaires originaux.\n\n"
126
 
127
  if "Auteur (droits d'auteur)" in contract_type and "Image (droit à l'image)" in contract_type:
128
- apercu += "Pour l'Auteur et Modèle Pour le Cessionnaire"
129
  elif "Auteur (droits d'auteur)" in contract_type:
130
- apercu += "Pour l'Auteur Pour le Cessionnaire"
131
  else:
132
- apercu += "Pour le Modèle Pour le Cessionnaire"
133
-
134
- apercu += "\n\nCet aperçu est une version simplifiée. Le contrat final sera plus détaillé et juridiquement complet."
135
 
136
  return apercu
 
1
  """
2
  Module pour la prévisualisation des contrats avant génération du PDF.
3
+ Version améliorée avec un formatage plus clair et une meilleure organisation.
4
+ Version corrigée pour l'encodage des caractères accentués et UTF-8.
5
  """
6
  from contract_templates import ContractTemplates
7
+ from utils import ensure_default_supports
8
 
9
 
10
  def preview_contract(contract_type, is_free, author_type, author_info,
 
12
  additional_rights, remuneration, is_exclusive):
13
  """
14
  Génère un aperçu du contrat sous forme de texte.
15
+ Version améliorée pour une meilleure lisibilité et encodage correct.
16
 
17
  Args:
18
  contract_type (list): Liste des types de contrats sélectionnés
 
37
  # Initialiser l'aperçu avec le titre
38
  apercu = ContractTemplates.get_title(contract_type) + "\n\n"
39
 
40
+ # Ajouter le préambule de façon plus claire
41
+ apercu += "ENTRE LES SOUSSIGNÉS :\n\n"
42
+
43
+ # Informations sur l'auteur/modèle
44
+ if author_type == "Personne physique":
45
+ gentille = author_info.get("gentille", "M.")
46
+ nom = author_info.get("nom", "")
47
+ prenom = author_info.get("prenom", "")
48
+ date_naissance = author_info.get("date_naissance", "")
49
+ nationalite = author_info.get("nationalite", "")
50
+ adresse = author_info.get("adresse", "")
51
+ contact = author_info.get("contact", "")
52
+
53
+ apercu += f"{gentille} {prenom} {nom}"
54
+ if date_naissance:
55
+ apercu += f", né(e) le {date_naissance}"
56
+ if nationalite:
57
+ apercu += f", de nationalité {nationalite}"
58
+ apercu += f", domicilié(e) au {adresse}"
59
+ if contact:
60
+ apercu += f", joignable à {contact}"
61
+ else:
62
+ # Personne morale
63
+ nom_societe = author_info.get("nom_societe", "")
64
+ statut = author_info.get("statut", "")
65
+ rcs = author_info.get("rcs", "")
66
+ siege = author_info.get("siege", "")
67
+ contact = author_info.get("contact", "")
68
+
69
+ apercu += f"La société {nom_societe}, {statut}, immatriculée sous le numéro {rcs} au Registre du Commerce et des Sociétés, dont le siège social est situé {siege}"
70
+ if contact:
71
+ apercu += f", joignable à {contact}"
72
 
73
+ # Dénomination de l'auteur
74
+ if "Auteur (droits d'auteur)" in contract_type and "Image (droit à l'image)" in contract_type:
75
+ apercu += ", ci-après dénommé(e) \"l'Auteur et le Modèle\",\n\n"
76
+ elif "Auteur (droits d'auteur)" in contract_type:
77
+ apercu += ", ci-après dénommé(e) \"l'Auteur\",\n\n"
78
+ else:
79
+ apercu += ", ci-après dénommé(e) \"le Modèle\",\n\n"
80
 
81
+ # Informations sur Tellers (bénéficiaire)
82
+ apercu += "Tellers, société par actions simplifiée unipersonnelle au capital de 1000 €, "
83
+ apercu += "immatriculée sous le numéro 932 553 266 R.C.S. Lyon, et dont le siège social est situé au : "
84
+ apercu += "12 RUE DE LA PART-DIEU, 69003 LYON, représentée par son Président en exercice dûment habilité à l'effet des présentes, "
85
+ apercu += "ci-après dénommée \"le Cessionnaire\",\n\n"
86
 
87
+ # Introduction
88
+ apercu += "Ci-après dénommées ensemble \"les Parties\" ou individuellement \"la Partie\",\n\n"
89
+ apercu += "CECI EXPOSÉ, IL A ÉTÉ CONVENU CE QUI SUIT :\n\n"
90
+
91
+ # ARTICLE 1 - OBJET DU CONTRAT
92
  apercu += "ARTICLE 1 – OBJET DU CONTRAT\n\n"
93
 
94
  if "Auteur (droits d'auteur)" in contract_type:
95
  apercu += "1.1 Œuvre concernée\n\n"
96
  apercu += f"L'Auteur déclare être le créateur et titulaire exclusif des droits d'auteur sur l'œuvre suivante :\n\n"
97
+ apercu += f"{work_description}\n\n"
98
 
99
  if "Image (droit à l'image)" in contract_type:
100
  apercu += "1.2 Images concernées\n\n"
101
+ apercu += f"Le Modèle autorise l'utilisation de son image telle qu'elle apparaît dans : \n\n"
102
+ apercu += f"{image_description}\n\n"
103
 
104
+ # ARTICLE 2 - DROITS CÉDÉS
105
  apercu += "ARTICLE 2 – ÉTENDUE DES DROITS CÉDÉS\n\n"
106
+
107
  apercu += "2.1 Nature de la cession\n\n"
108
  apercu += "L'Auteur cède au Cessionnaire, "
109
 
 
113
  apercu += "à titre non exclusif, "
114
 
115
  if is_free:
116
+ apercu += "gratuitement et pour la durée précisée à l'article 4, les droits patrimoniaux suivants :\n\n"
117
  else:
118
+ apercu += "pour la durée précisée à l'article 4 et moyennant rémunération, les droits suivants :\n\n"
119
 
120
  apercu += "2.2 Droits patrimoniaux cédés\n\n"
121
+ apercu += "- Droit de reproduction\n"
122
+ apercu += "- Droit de représentation\n"
123
 
124
  if not is_free and additional_rights:
125
+ apercu += "\nDroits supplémentaires inclus :\n"
126
  for right in additional_rights:
127
+ short_name = right.split(" - ")[0] if " - " in right else right
128
+ apercu += f"- {short_name}\n"
 
 
129
 
130
+ apercu += "\n"
 
131
 
132
+ # Article sur l'image si applicable
133
  if "Image (droit à l'image)" in contract_type:
134
+ article_num = 3
135
+ apercu += f"ARTICLE {article_num} AUTORISATION D'EXPLOITATION DE L'IMAGE\n\n"
136
+
137
+ apercu += "Le Modèle autorise expressément le Cessionnaire à exploiter son image "
138
+
139
+ if is_exclusive:
140
+ apercu += "à titre exclusif"
141
+ else:
142
+ apercu += "à titre non exclusif"
143
+
144
+ if is_free:
145
+ apercu += " et gratuit"
146
+
147
+ apercu += " selon les modalités détaillées dans le contrat complet.\n\n"
148
+
149
  article_num += 1
150
+ else:
151
+ article_num = 3
152
+
153
+ # Article DURÉE ET TERRITOIRE
154
+ apercu += f"ARTICLE {article_num} – DURÉE ET TERRITOIRE\n\n"
155
+ apercu += "4.1 Durée\n"
156
+ apercu += "La cession est consentie pour une durée d'un (1) an, renouvelable par tacite reconduction.\n\n"
157
+
158
+ apercu += "4.2 Territoire\n"
159
+ apercu += "La cession est consentie pour le monde entier.\n\n"
160
 
 
 
 
161
  article_num += 1
162
 
163
+ # Article SUPPORTS D'EXPLOITATION
164
+ apercu += f"ARTICLE {article_num} – SUPPORTS D'EXPLOITATION\n\n"
165
+ apercu += "5.1 Supports autorisés\n"
166
+ apercu += "Les supports d'exploitation autorisés sont :\n"
167
+
168
+ for support in final_supports:
169
+ apercu += f"- {support}\n"
170
+
171
+ apercu += "\n"
172
  article_num += 1
173
 
174
+ # Article RÉMUNÉRATION
175
+ apercu += f"ARTICLE {article_num} – RÉMUNÉRATION\n\n"
176
+
177
  if is_free:
178
+ apercu += "La présente cession est consentie à titre gratuit, sans contrepartie financière.\n\n"
179
  else:
180
+ apercu += f"En contrepartie de la présente cession, le Cessionnaire versera au Cédant : \n{remuneration}\n\n"
181
+
182
  article_num += 1
183
 
184
  # Résumé des articles restants
185
+ apercu += f"ARTICLE {article_num} – GARANTIES ET RESPONSABILITÉS\n\n"
186
  article_num += 1
187
+ apercu += f"ARTICLE {article_num} – RÉSILIATION\n\n"
188
  article_num += 1
189
+ apercu += f"ARTICLE {article_num} – DISPOSITIONS DIVERSES\n\n"
190
  article_num += 1
191
  apercu += f"ARTICLE {article_num} – LOI APPLICABLE ET JURIDICTION COMPÉTENTE\n\n"
192
 
193
+ # Signature
194
  apercu += "Fait à ________________, le ________________\n\n"
195
  apercu += "En deux exemplaires originaux.\n\n"
196
 
197
  if "Auteur (droits d'auteur)" in contract_type and "Image (droit à l'image)" in contract_type:
198
+ apercu += "Pour l'Auteur et Modèle : Pour le Cessionnaire :"
199
  elif "Auteur (droits d'auteur)" in contract_type:
200
+ apercu += "Pour l'Auteur : Pour le Cessionnaire :"
201
  else:
202
+ apercu += "Pour le Modèle : Pour le Cessionnaire :"
 
 
203
 
204
  return apercu