File size: 5,918 Bytes
2e25654
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bd5a9a7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2e25654
 
bd5a9a7
 
 
2e25654
 
bd5a9a7
 
 
2e25654
bd5a9a7
 
 
 
 
 
 
2e25654
bd5a9a7
2e25654
bd5a9a7
 
 
 
2e25654
bd5a9a7
 
 
 
 
 
 
 
 
 
 
 
 
2e25654
 
bd5a9a7
 
2e25654
 
bd5a9a7
2e25654
 
 
bd5a9a7
 
2e25654
 
 
bd5a9a7
 
2e25654
 
 
 
bd5a9a7
2e25654
bd5a9a7
 
2e25654
bd5a9a7
2e25654
bd5a9a7
2e25654
bd5a9a7
2e25654
 
bd5a9a7
2e25654
 
bd5a9a7
2e25654
bd5a9a7
2e25654
bd5a9a7
 
 
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
"""
Module pour la prévisualisation des contrats avant génération du PDF.
"""
from contract_templates import ContractTemplates
from utils import ensure_default_supports, sanitize_text


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.
    
    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 un extrait du préambule (simplifié pour l'aperçu)
    preamble_parts = ContractTemplates.get_preamble_text(contract_type, author_type, author_info).split("\n\n")
    
    # Première partie du préambule (partie "ENTRE LES SOUSSIGNÉS" et infos parties)
    for i in range(min(6, len(preamble_parts))):
        if preamble_parts[i].strip():
            apercu += preamble_parts[i] + "\n\n"
    
    # Sauter au "CECI EXPOSÉ, IL A ÉTÉ CONVENU CE QUI SUIT :"
    for part in preamble_parts:
        if "CONVENU CE QUI SUIT" in part:
            apercu += part + "\n\n"
            break
    
    # Article 1 - Objet (extrait)
    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"{sanitize_text(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 et l'exploitation de son image telle qu'elle apparaît dans les photographies/vidéos suivantes :\n\n"
        apercu += f"{sanitize_text(image_description)}\n\n"
    
    # Article 2 - Droits cédés (extrait)
    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 patrimoniaux détaillés au contrat.\n\n"
    
    apercu += "2.2 Droits patrimoniaux cédés\n\n"
    apercu += "Droits de base : reproduction et représentation"
    
    if not is_free and additional_rights:
        apercu += "\nDroits supplémentaires inclus :"
        for right in additional_rights:
            right_name = right.split(" - ")[0] if " - " in right else right
            apercu += f"\n- {right_name}"
    
    apercu += "\n\n"
    
    # Pour l'aperçu, ajouter les titres des autres articles
    article_num = 3
    
    if "Image (droit à l'image)" in contract_type:
        apercu += f"ARTICLE {article_num} – AUTORISATION D'EXPLOITATION DE L'IMAGE\n"
        apercu += f"(Les détails complets seront inclus dans le contrat final)\n\n"
        article_num += 1
    
    apercu += f"ARTICLE {article_num} – DURÉE ET TERRITOIRE\n"
    apercu += "Durée : 1 an, renouvelable par tacite reconduction\n"
    apercu += "Territoire : monde entier\n\n"
    article_num += 1
    
    apercu += f"ARTICLE {article_num} – SUPPORTS D'EXPLOITATION\n"
    supports_str = ", ".join(final_supports)
    apercu += f"Supports autorisés : {supports_str}\n\n"
    article_num += 1
    
    apercu += f"ARTICLE {article_num} – RÉMUNÉRATION\n"
    if is_free:
        apercu += "La présente cession est consentie à titre gratuit.\n\n"
    else:
        apercu += f"Rémunération : {sanitize_text(remuneration)}\n\n"
    article_num += 1
    
    # Résumé des articles restants
    apercu += f"ARTICLE {article_num} – GARANTIES ET RESPONSABILITÉS\n"
    article_num += 1
    apercu += f"ARTICLE {article_num} – RÉSILIATION\n"
    article_num += 1
    apercu += f"ARTICLE {article_num} – DISPOSITIONS DIVERSES\n"
    article_num += 1
    apercu += f"ARTICLE {article_num} – LOI APPLICABLE ET JURIDICTION COMPÉTENTE\n\n"
    
    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"
    
    apercu += "\n\nCet aperçu est une version simplifiée. Le contrat final sera plus détaillé et juridiquement complet."
    
    return apercu