Commit 18235f39 authored by Arnaud Daret's avatar Arnaud Daret
Browse files

fix reimport metadata with readonly columns

parent bf271a11
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -59,8 +59,7 @@ def _flatten_resource(
    for known_metadata_label in metadatas_labels:
        data[known_metadata_label] = None
    for mr in (
        resource.metadataresourcevalue_set.exclude(metadata__title="ExifTool")
        .exclude(metadata__title="OCR")
        resource.metadataresourcevalue_set.exclude(metadata__title="OCR")
        .exclude(metadata__title="scd_cms")
        .select_related("metadata")
    ):
@@ -276,7 +275,7 @@ class Project(models.Model):
        metadatas = []
        query = MetadataSet.objects.filter(project=self).order_by("title")
        if exclude_automatic_metas:
            query = query.exclude(title="ExifTool").exclude(title="OCR")
            query = query.exclude(title="OCR")
        for metadataset in query.iterator():
            for metadata in (
                Metadata.objects.filter(set=metadataset).order_by("title").iterator()
@@ -929,8 +928,7 @@ class Collection(models.Model):
        for known_metadata_label in metadatas_labels:
            data[known_metadata_label] = None
        for mr in (
            self.metadatacollectionvalue_set.exclude(metadata__title="ExifTool")
            .exclude(metadata__title="OCR")
            self.metadatacollectionvalue_set.exclude(metadata__title="OCR")
            .exclude(metadata__title="scd_cms")
            .select_related("metadata")
            .iterator()
@@ -977,6 +975,11 @@ class Collection(models.Model):
        known_metadatas = {}
        known_metadatas_labels = []
        for metadata in self.project.metadatas():
            if (
                "exiftool" in str(metadata).lower()
                and "date" not in str(metadata).lower()
            ):
                continue
            known_metadatas[metadata.pk] = metadata
            known_metadatas_labels.append(f"{str(metadata)}")
        # First line is for the current category
+4 −4
Original line number Diff line number Diff line
@@ -3156,8 +3156,8 @@ def update_collection_from_xlsx_row(user: User, collection_data: dict) -> bool:
        collection_instance.title = new_title.strip()

    for k in collection_data.keys():
        if k and ":" in k:  # example: Dublin Core: creator
            meta_set_name, meta_name = [x.strip() for x in k.split(":")]
        if k and ":" in k and "__RO__" not in k:  # example: Dublin Core: creator
            meta_set_name, meta_name = [x.strip() for x in k.split(":", 1)]
            metadata_instance = Metadata.objects.filter(
                title=meta_name, set__title=meta_set_name
            ).first()
@@ -3214,8 +3214,8 @@ def update_resource_from_xlsx_row(user: User, resource_data: dict) -> bool:
        resource_instance.title = new_title.strip()

    for k in resource_data.keys():
        if k and ":" in k:  # example: Dublin Core: creator
            meta_set_name, meta_name = [x.strip() for x in k.split(":")]
        if k and ":" in k and "__RO__" not in k:  # example: Dublin Core: creator
            meta_set_name, meta_name = [x.strip() for x in k.split(":", 1)]
            metadata_instance = Metadata.objects.filter(
                title=meta_name, set__title=meta_set_name
            ).first()
+2 −0
Original line number Diff line number Diff line
@@ -500,6 +500,8 @@ def download_metas_xls(request: HttpRequest, collection_id):
    col_number = 1
    for key in r.keys():
        cell = ws.cell(row=1, column=col_number)
        if "exiftool" in key.lower():
            key = "__RO__ {}".format(key)
        cell.value = key
        col_number = col_number + 1