Nous avons ajouté une date de suppression pour chaque vidéo. Ce champ date est créé avec deux ans de plus que la date d'ajout par défaut. Ces deux ans sont paramétrables via le settings DEFAULT_YEAR_DATE_DELETE
1/ Attribut date_delete
Lors de l'ajout de la vidéo, quand l'upload est terminé est que la vidéo est enregistrée, cette date est modifiée si l'affiliation du propriétaire est précisé dans la variable ACCOMMODATION_YEARS.
Par exemple à Lille, nous avons ACCOMMODATIONavons ACCOMMODATION_YEARS={'faculty': 3, 'employee': 3, 'staff': 3}. Donc pour toute vidéo déposée sur Pod, pour tout le monde c'est deux ans mais pour les enseignants, personnels et équipe, c'est trois ans.
En gros, si vous avez ACCOMMODATION_YEARS = {'student':1} dans votre fichier de settings, si un étudiant poste une vidéo dans Pod alors sa date de suppression sera égale à un an de plus que sa date d'ajout, pour tous les autres, ca reste deux ans. (Attention, il ne faut pas avoir deux fois la variable dans votre fichier de settings ; combinez les 2 précédents ainsi : ACCOMMODATION_YEARS={'faculty': 3, 'employee': 3, 'staff': 3, 'student':1} )
Pour rappel et par défaut, voici les valeurs possible pour l'affiliation :
| Bloc de code | ||
|---|---|---|
| ||
AFFILIATION = getattr(
settings, 'AFFILIATION',
(
('student', _('student')),
('faculty', _('faculty')),
('staff', _('staff')),
('employee', _('employee')),
('member', _('member')),
('affiliate', _('affiliate')),
('alum', _('alum')),
('library-walk-in', _('library-walk-in')),
('researcher', _('researcher')),
('retired', _('retired')),
('emeritus', _('emeritus')),
('teacher', _('teacher')),
('registered-reader', _('registered-reader'))
)
) |
Donc si vous mettez à jour votre Pod et que vous ne touchez à rien, toutes vos vidéos auront une date de suppression égale à deux ans suivant votre date de mise à jour de votre plateforme.
...
Nous avons ajouté une variable WARN_DEADLINES = getattr(settings, "WARN_DEADLINES", []). Elle est donc vide par défaut.
...
par exemple, si vous mettez WARN_DEADLINES = [60,30,7], les propriétaires de vidéos recevront un mail 60 jours avant la date de suppression, 30 jours avant et 7 jours avant.
Ensuite,
- s'ils sont "staff", le courriel envoyé leur précisera que leur vidéo va être bientôt supprimée mais qu'il peuvent modifier la date dans l'interface d'édition avec un lien pour les y conduire.
- s'ils sont "non staff" (les étudiants), le mail les invitera à contacter les managers de la plateforme (
CONTACT_US_EMAILouMANAGERde l'établissement
...
- si
USE_ESTABLISHMENT_FIELDà True)
Les gestionnaires recevront en récapitulatif la liste des vidéos bientôt supprimées.
Pour les vidéos dont la date de suppression est dépassée, on a ajouté une variable PODvariable POD_ARCHIVE_AFFILIATION. Cette variable est un tableau qui contient toutes les affiliations pour lesquelles on souhaite archiver la vidéo plutôt que de la supprimer. A À Lille, POD_ARCHIVE_AFFILIATION contient les valeurs suivantes : ['faculty', 'staff', 'employee', 'affiliate', 'alum', 'library-walk-in', 'researcher', 'retired', 'emeritus', 'teacher', 'registered-reader']
Si l'affiliation du propriétaire est dans cette variable, alors les vidéos sont affectées à un utilisateur précis que l'on peut spécifier via le paramètre ARCHIVE_OWNER_USERNAME. Elles sont mise en mode brouillon et le mot _("archived") est ajouté à leur titre. Enfin elles sont également ajoutées à l'ensemble "Vidéo à Supprimer supprimer" (accessible via l'interface d'admin)
...
Ensuite, il faut lancer une tache cron qui va passer une fois par jour avec la commande suivante :
| Bloc de code | ||
|---|---|---|
| ||
0 5 * * * cd /home/pod/django_projects/podv2 && /home/pod/.virtualenvs/django_pod/bin/python manage. |
...
py check_obsolete_videos |