Geotrek-admin icon indicating copy to clipboard operation
Geotrek-admin copied to clipboard

Filtres "Objet incomplet" et "médias manquants"

Open IdrissaD opened this issue 3 years ago • 2 comments

Actuellement il faut aller sur la page individuelle d'un itinéraire pour savoir grâce à l'avertissement "L'objet semble incomplet" que des champs sont manquants, et sur l'onglet des fichiers liés de cet itinéraire pour se rendre compte que certains fichiers liés n'existent plus.

Sur le même principe que le filtre "Géométrie valide" présent sur les pages list des modules, deux filtres spécifiques à ces anomalies permettraient de repérer et corriger beaucoup plus facilement les itinéraires qui ont besoin d'une intervention.

IdrissaD avatar Jun 23 '22 08:06 IdrissaD

En complement script permettant de trouver les fichiers physiquement manquant mais présents en base

A lancer avec sudo geotrek shell

"""
  Script permettant de tester si les fichiers associés
    aux "attachments" (en base de données)
    sont bien présent physiquement
"""
import os

from django.apps import apps
from geotrek.common.models import Attachment

for attachment in Attachment.objects.exclude(attachment_file='').all():
  # Test if file exist
  if not os.path.exists(os.path.join('/opt/geotrek-admin/var/media', str(attachment.attachment_file))):
    # Get related object
    current_model = apps.get_model(
      app_label=attachment.content_type.app_label,
      model_name=attachment.content_type.model
    )
    related_object = current_model.objects.get(id = attachment.object_id)
    # Print message
    print(f"Missing file {attachment.content_type} - {attachment.object_id} - {related_object} -  {attachment.attachment_file}")

amandine-sahl avatar Jun 23 '22 09:06 amandine-sahl

Merci. A noter aussi l'existence d'une commande Geotrek (clean_attachments) permettant de "Remove files for deleted attachments".

camillemonchicourt avatar Jun 23 '22 10:06 camillemonchicourt