Commit 5fca6956 authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

add JAMA_XLSX_EXPORT_AUTOMATIC_METADATAS (defaults to False) option, adresses #52

parent a40585ff
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -54,6 +54,10 @@ JAMA_USE_MODSHIB = True if os.getenv("JAMA_USE_MODSHIB", "1") == "1" else False
JAMA_USE_WEBP = True if os.getenv("JAMA_USE_WEBP", "1") == "1" else False
JAMA_USE_ARK = True if os.getenv("JAMA_USE_ARK", "0") == "1" else False
JAMA_SQLITE_DB_PATH = os.getenv("JAMA_SQLITE_DB_PATH") or Path(VAR_DIR, "db.sqlite3")
JAMA_XLSX_EXPORT_AUTOMATIC_METADATAS = (
    True if os.getenv("JAMA_XLSX_EXPORT_AUTOMATIC_METADATAS", "0") == "1" else False
)
print("######   ", JAMA_XLSX_EXPORT_AUTOMATIC_METADATAS)
JAMA_IIIF_PROCESSING_DIR = os.getenv(
    "JAMA_IIIF_PROCESSING_DIR", Path(VAR_DIR, "processing")
)
+23 −5
Original line number Diff line number Diff line
@@ -275,14 +275,28 @@ class Project(models.Model):
        This is the way to define available columns in a XLSX export.
        """
        metadatas = []
        query = MetadataSet.objects.filter(project=self).order_by("title")
        if exclude_automatic_metas:
            query = query.exclude(title="ExifTool").exclude(title="OCR")
        query = (
            MetadataSet.objects.filter(project=self)
            .exclude(title__in=["ExifTool", "OCR"])
            .order_by("title")
        )
        for metadataset in query.iterator():
            for metadata in (
                Metadata.objects.filter(set=metadataset).order_by("title").iterator()
            ):
                metadatas.append(metadata)
        # Put exif and other columns at the end of the file
        if not exclude_automatic_metas:
            query = MetadataSet.objects.filter(
                project=self, title__in=["ExifTool", "OCR"]
            ).order_by("title")
            for metadataset in query.iterator():
                for metadata in (
                    Metadata.objects.filter(set=metadataset)
                    .order_by("title")
                    .iterator()
                ):
                    metadatas.append(metadata)
        return metadatas

    def accesses(self):
@@ -933,7 +947,9 @@ class Collection(models.Model):
        for mr in (
            self.metadatacollectionvalue_set.exclude(metadata__title="ExifTool")
            .exclude(metadata__title="OCR")
            .exclude(metadata__title="scd_cms")
            .exclude(
                metadata__title="scd_cms"
            )  # TODO: verrue, propre à Bibnum, trouver meilleure solution
            .select_related("metadata")
            .iterator()
        ):
@@ -978,7 +994,9 @@ class Collection(models.Model):
    def yield_resource_data_for_export(self) -> Iterator[dict]:
        known_metadatas = {}
        known_metadatas_labels = []
        for metadata in self.project.metadatas():
        for metadata in self.project.metadatas(
            not settings.JAMA_XLSX_EXPORT_AUTOMATIC_METADATAS
        ):
            known_metadatas[metadata.pk] = metadata
            known_metadatas_labels.append(f"{str(metadata)}")
        # First line is for the current category