Skip to content

Commit

Permalink
fix: add ampel to detail views and fix strings in relation and dates
Browse files Browse the repository at this point in the history
b1rger committed Feb 21, 2024
1 parent 34cfe5c commit af45b18
Showing 6 changed files with 34 additions and 10 deletions.
3 changes: 2 additions & 1 deletion viecpro_typesense_detail/details/detail_court.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from .utils import F, C
from .utils import F, C, ampel
from apis_core.apis_entities.models import Institution
from typing import Dict, Any, List, TypeVar
from apis_core.apis_relations.models import AbstractRelation
@@ -130,6 +130,7 @@ def main(offset:int=0) -> Dict[str, Any]:
res = parse_court_relations(instance, res)
# NOTE: sources contain the bibtex json directly, they could be parsed to a) conform to the naming scheme and b) get rid of uneccessary data
res["sources"] = get_references_for_instance(instance)
res["ampel"] = ampel(instance)

results.append(res)

3 changes: 2 additions & 1 deletion viecpro_typesense_detail/details/detail_event.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from .utils import F, C
from .utils import F, C, ampel
from typing import Dict, Any, List
from apis_core.apis_entities.models import Event
from apis_core.apis_relations.models import AbstractRelation
@@ -86,6 +86,7 @@ def main(offset: int = 0) -> Dict[str, Any]:
res = parse_event_relations(instance, res)
# NOTE: sources contain the bibtex json directly, they could be parsed to a) conform to the naming scheme and b) get rid of uneccessary data
res["sources"] = get_references_for_instance(instance)
res["ampel"] = ampel(instance)

results.append(res)

3 changes: 2 additions & 1 deletion viecpro_typesense_detail/details/detail_institution.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from .utils import F, C
from .utils import F, C, ampel
from typing import Dict, Any, List
from apis_core.apis_entities.models import Institution
from apis_core.apis_relations.models import AbstractRelation, InstitutionInstitution
@@ -90,6 +90,7 @@ def main(offset: int = 0) -> Dict[str, Any]:
res = parse_institution_relations(instance, res)
# NOTE: sources contain the bibtex json directly, they could be parsed to a) conform to the naming scheme and b) get rid of uneccessary data
res["sources"] = get_references_for_instance(instance)
res["ampel"] = ampel(instance)

results.append(res)

3 changes: 2 additions & 1 deletion viecpro_typesense_detail/details/detail_person.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from .utils import F, C, format_and_orient_relation, to_rel
from .utils import F, C, format_and_orient_relation, to_rel, ampel
from apis_core.apis_entities.models import Person
from apis_core.apis_relations.models import PersonInstitution
from typing import List, Dict, Any
@@ -212,6 +212,7 @@ def main(offset:int=0):
res["id"] = f"detail_{model._meta.model_name}_{instance.id}" # type: ignore
res["object_id"] = str(instance.id) # type: ignore
res["model"] = model.__name__
res["ampel"] = ampel(instance)
results.append(res)

return {"schema": schema, "results": results}
3 changes: 2 additions & 1 deletion viecpro_typesense_detail/details/detail_place.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from .utils import F, C, format_and_orient_relation
from .utils import F, C, format_and_orient_relation, ampel
from apis_core.apis_entities.models import Place
from dataclasses import dataclass, asdict, field
from typing import Dict, Any, List
@@ -92,6 +92,7 @@ def main(offset:int=0) -> Dict[str, Any]:
res["id"] = f"detail_{model._meta.model_name}_{instance.id}"
res["object_id"] = str(instance.id)
res["model"] = model.__name__
res["ampel"] = ampel(instance)
results.append(res)

return {"schema":schema, "results":results}
29 changes: 24 additions & 5 deletions viecpro_typesense_detail/details/utils.py
Original file line number Diff line number Diff line change
@@ -5,6 +5,19 @@
from apis_bibsonomy.models import Reference # type: ignore
from apis_core.apis_relations.models import AbstractRelation
import json
import re

REG_SKL = re.compile(r"\<.*?\>")
REG_EKL = re.compile(r"\[.*?\]")
REG_GKL = re.compile(r"\{.*?\}")


def fixstring(string):
string = str(string)
string = re.sub(REG_SKL, "", string)
string = re.sub(REG_EKL, "", string)
string = re.sub(REG_GKL, "", string)
return string


@dataclass
@@ -69,8 +82,8 @@ def to_rel(l: Label) -> Dict[str, Any]:
"""
return {
"name": l.label,
"start_date": l.start_date_written or "",
"end_date": l.end_date_written or "",
"start_date": fixstring(l.start_date_written) or "",
"end_date": fixstring(l.end_date_written) or "",
}


@@ -99,10 +112,10 @@ def format_and_orient_relation(
}

return {
"relation_type": relation_type,
"relation_type": fixstring(relation_type),
"target": target,
"start_date": rel.start_date_written or "",
"end_date": rel.end_date_written or "",
"start_date": fixstring(rel.start_date_written) or "",
"end_date": fixstring(rel.end_date_written) or "",
}


@@ -123,3 +136,9 @@ def get_references_for_instance(instance: Any) -> List[Dict[str, Any]]:
}
for r in references
]


def ampel(instance: Any) -> str:
if ampel := getattr(instance, "ampel", False):
return ampel.status
return ""

0 comments on commit af45b18

Please sign in to comment.