6
0
Переглянути джерело

minor changes in the management script in .gitignore files

Dimitri Korsch 3 роки тому
батько
коміт
53f39de67d
4 змінених файлів з 23 додано та 5 видалено
  1. 4 2
      .gitignore
  2. 4 0
      notebooks/.gitignore
  3. 5 0
      pycs/database/Label.py
  4. 10 3
      pycs/management/result.py

+ 4 - 2
.gitignore

@@ -37,11 +37,13 @@ htmlcov/
 projects
 db
 external_data
-/models/
-/labels/
+models*
+labels*
 dist/
 
 *.sqlite
 *.sqlite-journal
 *.sqlite3
 *.sqlite3-journal
+
+output*.json

+ 4 - 0
notebooks/.gitignore

@@ -0,0 +1,4 @@
+export*
+.ipynb_checkpoints
+*.zip
+*.tar*

+ 5 - 0
pycs/database/Label.py

@@ -66,11 +66,16 @@ class Label(NamedBaseModel):
     serialize_only = NamedBaseModel.serialize_only + (
         "project_id",
         "parent_id",
+        "parent_reference",
         "reference",
         "hierarchy_level",
         # "children",
     )
 
+    @property
+    def parent_reference(self):
+        return None if self.parent is None else self.parent.reference
+
     @commit_on_return
     def set_parent(self, parent: T.Optional[T.Union[int, str, Label]] = None) -> None:
 

+ 10 - 3
pycs/management/result.py

@@ -5,7 +5,6 @@ from flask.cli import AppGroup
 
 from pycs import app
 from pycs.database.Project import Project
-from pycs.interfaces.MediaStorage import MediaStorage
 
 result_cli = AppGroup("result", short_help="Result operations")
 
@@ -38,11 +37,19 @@ def export(project_id, output, indent):
     results = []
 
     for project in projects:
-        storage = MediaStorage(project.id, None)
-        project_files = [f.serialize() for f in storage.files().iter() if len(f.results()) != 0]
+        project_files = [
+            dict(**f.serialize(),
+                results=[
+                    dict(**r.serialize(), label=r.label.serialize() if r.label is not None else None)
+                        for r in f.results.all()
+                ])
+                for f in project.files.all() if f.results.count() != 0
+            ]
+
         results.append(dict(
             project_id=project.id,
             files=project_files,
+            labels=[lab.serialize() for lab in project.labels.all()],
         ))