Spaces:
Running
Running
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()
|