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