File size: 4,503 Bytes
afd56bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# ruff: noqa: E402
import os
import sys
from dotenv import load_dotenv

# Wczytaj zmienne 艣rodowiskowe z g艂贸wnego katalogu
root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
load_dotenv(os.path.join(root_dir, ".env"))

# Dodaj g艂贸wny katalog backendu do PYTHONPATH
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from sqlalchemy.orm import Session
from core.subscription.db import SessionLocal
from core.projects.models import ProjectSectionTemplate

SMART_SECTIONS = [
    {
        "type": "project_summary",
        "title": "Streszczenie projektu",
        "order": 1,
        "description": "Kr贸tkie podsumowanie cel贸w, zakresu i oczekiwanych rezultat贸w projektu.",
    },
    {
        "type": "company_potential",
        "title": "Opis przedsi臋biorstwa i potencja艂",
        "order": 2,
        "description": "Informacje o Wnioskodawcy, zasobach, do艣wiadczeniu i zdolno艣ci do realizacji projektu.",
    },
    {
        "type": "innovation_description",
        "title": "Opis innowacji / B+R",
        "order": 3,
        "description": "Szczeg贸艂owy opis planowanych prac badawczo-rozwojowych oraz samej innowacji.",
    },
    {
        "type": "market_analysis",
        "title": "Analiza rynku i konkurencji",
        "order": 4,
        "description": "Analiza zapotrzebowania, grupy docelowej oraz przewag konkurencyjnych.",
    },
    {
        "type": "research_agenda",
        "title": "Agenda badawcza / cele",
        "order": 5,
        "description": "Zdefiniowane problemy badawcze, hipotezy i cele postawione w projekcie.",
    },
    {
        "type": "trl_levels",
        "title": "Poziom gotowo艣ci technologii (TRL)",
        "order": 6,
        "description": "Opis stanu pocz膮tkowego i docelowego Poziomu Gotowo艣ci Technologicznej (TRL).",
    },
    {
        "type": "budget_and_costs",
        "title": "Bud偶et i kwalifikowalno艣膰 koszt贸w",
        "order": 7,
        "description": "Podzia艂 i uzasadnienie planowanych koszt贸w kwalifikowalnych w projekcie.",
    },
    {
        "type": "work_schedule",
        "title": "Harmonogram rzeczowo-finansowy",
        "order": 8,
        "description": "Etapy, zadania, kamienie milowe i rozk艂ad prac w czasie.",
    },
    {
        "type": "project_team",
        "title": "Zesp贸艂 projektowy",
        "order": 9,
        "description": "Kluczowy personel B+R, zarz膮dzaj膮cy oraz planowane zaanga偶owanie kadrowe.",
    },
    {
        "type": "risk_management",
        "title": "Zarz膮dzanie ryzykiem",
        "order": 10,
        "description": "Identyfikacja ryzyk technologicznych, rynkowych i organizacyjnych oraz planymitygacji.",
    },
    {
        "type": "social_impact_dnsh",
        "title": "Wp艂yw spo艂eczny i 艣rodowiskowy (DNSH)",
        "order": 11,
        "description": "Zasada Do No Significant Harm oraz wp艂yw na zr贸wnowa偶ony rozw贸j i spo艂ecze艅stwo.",
    },
    {
        "type": "intellectual_property",
        "title": "Prawa w艂asno艣ci intelektualnej",
        "order": 12,
        "description": "Spos贸b ochrony wypracowanych rezultat贸w oraz status praw maj膮tkowych (IP).",
    },
    {
        "type": "success_metrics",
        "title": "Wska藕niki sukcesu i ewaluacja",
        "order": 13,
        "description": "Spos贸b mierzenia post臋p贸w i weryfikacji osi膮gni臋cia cel贸w merytorycznych projektu.",
    },
]


def seed_smart_sections():
    print("艁膮czenie z baz膮 danych...")
    db: Session = SessionLocal()
    try:
        print("Czyszczenie starych szablon贸w dla programu SMART...")
        # Usu艅 dotychczasowe wpisy dla 艢cie偶ki SMART
        db.query(ProjectSectionTemplate).filter(
            ProjectSectionTemplate.program_type == "SMART"
        ).delete()

        print("Dodawanie nowych szablon贸w (艢cie偶ka SMART)...")
        for sec in SMART_SECTIONS:
            template = ProjectSectionTemplate(
                program_type="SMART",
                section_type=sec["type"],
                title=sec["title"],
                order=sec["order"],
                description=sec["description"],
            )
            db.add(template)

        db.commit()
        print(f"Sukces! Dodano {len(SMART_SECTIONS)} sekcji dla programu SMART.")
    except Exception as e:
        db.rollback()
        print(f"Wyst膮pi艂 b艂膮d podczas uzupe艂niania bazy: {e}")
    finally:
        db.close()


if __name__ == "__main__":
    seed_smart_sections()