22import abc
33import datetime
44import typing
5+ from warnings import deprecated
56
67import dateutil .parser as dp
78
@@ -928,15 +929,15 @@ def __init__(self, *, path: str, created_at: datetime.datetime,
928929 reply_type = 'FileReply' ,
929930 )
930931 self .file_uuid = file_uuid
931- self .file : QuestionnaireFile | None = None
932+ self .file : ProjectFile | None = None
932933
933934 @property
934935 def value (self ) -> str :
935936 return self .file_uuid
936937
937938 def resolve_links (self , ctx ):
938939 super ().resolve_links_parent (ctx )
939- self .file = ctx .questionnaire .files .get (self .file_uuid , None )
940+ self .file = ctx .project .files .get (self .file_uuid , None )
940941 if self .file is not None :
941942 self .file .reply = self
942943
@@ -1749,7 +1750,7 @@ def load(data: dict, **options):
17491750 )
17501751
17511752
1752- class QuestionnaireVersion :
1753+ class ProjectVersion :
17531754
17541755 def __init__ (self , * , uuid : str , event_uuid : str , name : str , description : str | None ,
17551756 created_at : datetime .datetime , updated_at : datetime .datetime ,
@@ -1764,7 +1765,7 @@ def __init__(self, *, uuid: str, event_uuid: str, name: str, description: str |
17641765
17651766 @staticmethod
17661767 def load (data : dict , ** options ):
1767- return QuestionnaireVersion (
1768+ return ProjectVersion (
17681769 uuid = data ['uuid' ],
17691770 event_uuid = data ['eventUuid' ],
17701771 name = data ['name' ],
@@ -1805,7 +1806,7 @@ def items(self) -> typing.ItemsView[str, Reply]:
18051806 return self .replies .items ()
18061807
18071808
1808- class QuestionnaireFile :
1809+ class ProjectFile :
18091810
18101811 def __init__ (self , * , uuid : str , file_name : str , file_size : int ,
18111812 content_type : str ):
@@ -1816,25 +1817,29 @@ def __init__(self, *, uuid: str, file_name: str, file_size: int,
18161817
18171818 self .reply : FileReply | None = None
18181819 self .download_url : str = ''
1819- self .questionnaire_uuid : str | None = None
1820+ self .project_uuid : str | None = None
1821+
1822+ @property
1823+ def questionnaire_uuid (self ) -> str | None :
1824+ return self .project_uuid
18201825
18211826 def resolve_links (self , ctx ):
1822- self .questionnaire_uuid = ctx .questionnaire .uuid
1827+ self .project_uuid = ctx .project .uuid
18231828 client_url = ctx .config .client_url
1824- self .download_url = (f'{ client_url } /projects/{ self .questionnaire_uuid } '
1829+ self .download_url = (f'{ client_url } /projects/{ self .project_uuid } '
18251830 f'/files/{ self .uuid } /download' )
18261831
18271832 @staticmethod
18281833 def load (data : dict , ** options ):
1829- return QuestionnaireFile (
1834+ return ProjectFile (
18301835 uuid = data ['uuid' ],
18311836 file_name = data ['fileName' ],
18321837 file_size = data ['fileSize' ],
18331838 content_type = data ['contentType' ],
18341839 )
18351840
18361841
1837- class Questionnaire :
1842+ class Project :
18381843
18391844 def __init__ (self , * , uuid : str , name : str , description : str | None ,
18401845 created_by : User , phase_uuid : str | None ,
@@ -1847,9 +1852,9 @@ def __init__(self, *, uuid: str, name: str, description: str | None,
18471852 self .created_at = created_at
18481853 self .updated_at = updated_at
18491854
1850- self .version : QuestionnaireVersion | None = None
1851- self .versions : list [QuestionnaireVersion ] = []
1852- self .files : dict [str , QuestionnaireFile ] = {}
1855+ self .version : ProjectVersion | None = None
1856+ self .versions : list [ProjectVersion ] = []
1857+ self .files : dict [str , ProjectFile ] = {}
18531858 self .todos : list [str ] = []
18541859 self .project_tags : list [str ] = []
18551860 self .phase : Phase = PHASE_NEVER
@@ -1859,38 +1864,38 @@ def __init__(self, *, uuid: str, name: str, description: str | None,
18591864 def resolve_links (self , ctx ):
18601865 for reply in self .replies .values ():
18611866 reply .resolve_links (ctx )
1862- for questionnaire_file in self .files .values ():
1863- questionnaire_file .resolve_links (ctx )
1867+ for file in self .files .values ():
1868+ file .resolve_links (ctx )
18641869
18651870 @staticmethod
18661871 def load (data : dict , ** options ):
1867- questionnaire_uuid = data ['uuid' ]
1868- versions = [QuestionnaireVersion .load (d , ** options )
1872+ entity_uuid = data ['uuid' ]
1873+ versions = [ProjectVersion .load (d , ** options )
18691874 for d in data ['versions' ]]
18701875 version = None
18711876 replies = {p : _load_reply (p , d , ** options )
18721877 for p , d in data ['replies' ].items ()}
1873- files = {d ['uuid' ]: QuestionnaireFile .load (d , ** options )
1878+ files = {d ['uuid' ]: ProjectFile .load (d , ** options )
18741879 for d in data .get ('files' , [])}
18751880 for v in versions :
18761881 if v .uuid == data ['versionUuid' ]:
18771882 version = v
1878- qtn = Questionnaire (
1879- uuid = questionnaire_uuid ,
1883+ entity = Project (
1884+ uuid = entity_uuid ,
18801885 name = data ['name' ],
18811886 description = data ['description' ] or '' ,
18821887 created_by = User .load (data ['createdBy' ], ** options ),
18831888 phase_uuid = data ['phaseUuid' ],
18841889 created_at = _datetime (data ['createdAt' ]),
18851890 updated_at = _datetime (data ['updatedAt' ]),
18861891 )
1887- qtn .version = version
1888- qtn .versions = versions
1889- qtn .files = files
1890- qtn .project_tags = data .get ('projectTags' , [])
1891- qtn .replies .replies = replies
1892- qtn .todos = [k for k , v in data .get ('labels' , {}).items () if TODO_LABEL_UUID in v ]
1893- return qtn
1892+ entity .version = version
1893+ entity .versions = versions
1894+ entity .files = files
1895+ entity .project_tags = data .get ('projectTags' , [])
1896+ entity .replies .replies = replies
1897+ entity .todos = [k for k , v in data .get ('labels' , {}).items () if TODO_LABEL_UUID in v ]
1898+ return entity
18941899
18951900
18961901class Package :
@@ -2158,7 +2163,7 @@ def __init__(self, *, ctx, **options):
21582163 )
21592164 self .config = ContextConfig .load (ctx ['config' ], ** options )
21602165 self .km = KnowledgeModel .load (ctx ['knowledgeModel' ], ** options )
2161- self .questionnaire = Questionnaire .load (ctx ['questionnaire' ], ** options )
2166+ self .project = Project .load (ctx ['questionnaire' ], ** options )
21622167 self .report = Report .load (ctx ['report' ], ** options )
21632168 self .document = Document .load (ctx ['document' ], ** options )
21642169 self .package = Package .load (ctx ['package' ], ** options )
@@ -2179,8 +2184,12 @@ def cfg(self) -> ContextConfig:
21792184 return self .config
21802185
21812186 @property
2182- def qtn (self ) -> Questionnaire :
2183- return self .questionnaire
2187+ def qtn (self ) -> Project :
2188+ return self .project
2189+
2190+ @property
2191+ def questionnaire (self ) -> Project :
2192+ return self .project
21842193
21852194 @property
21862195 def org (self ) -> Organization :
@@ -2196,16 +2205,16 @@ def doc(self) -> Document:
21962205
21972206 @property
21982207 def replies (self ) -> RepliesContainer :
2199- return self .questionnaire .replies
2208+ return self .project .replies
22002209
22012210 def resolve_links (self ):
2202- phase_uuid = self .questionnaire .phase_uuid
2211+ phase_uuid = self .project .phase_uuid
22032212 if phase_uuid is not None and phase_uuid in self .e .phases :
22042213 self .current_phase = self .e .phases [phase_uuid ]
2205- self .questionnaire .phase = self .current_phase
2214+ self .project .phase = self .current_phase
22062215 self .km .resolve_links (self )
22072216 self .report .resolve_links (self )
2208- self .questionnaire .resolve_links (self )
2217+ self .project .resolve_links (self )
22092218
22102219 rv = ReplyVisitor (context = self )
22112220 rv .visit ()
0 commit comments