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