Add is_in_sas field, to perform queries on it

This commit is contained in:
Skia 2016-11-22 14:58:39 +01:00
parent 5481a79f64
commit da35292cd5
5 changed files with 76 additions and 57 deletions

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0009_auto_20161120_1155'),
]
operations = [
migrations.AddField(
model_name='sithfile',
name='is_in_sas',
field=models.BooleanField(verbose_name='is in the SAS', default=False),
),
]

View File

@ -513,6 +513,7 @@ class SithFile(models.Model):
date = models.DateTimeField(_('date'), auto_now=True)
is_moderated = models.BooleanField(_("is moderated"), default=False)
asked_for_removal = models.BooleanField(_("asked for removal"), default=False)
is_in_sas = models.BooleanField(_("is in the SAS"), default=False)
class Meta:
verbose_name = _("file")
@ -578,6 +579,8 @@ class SithFile(models.Model):
raise ValidationError(_("You must provide a file"))
def save(self, *args, **kwargs):
sas = SithFile.objects.filter(id=settings.SITH_SAS_ROOT_DIR_ID).first()
self.is_in_sas = sas in self.get_parent_list()
copy_rights = False
if self.id is None:
copy_rights = True

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-20 23:05+0100\n"
"POT-Creation-Date: 2016-11-22 14:58+0100\n"
"PO-Revision-Date: 2016-07-18\n"
"Last-Translator: Skia <skia@libskia.so>\n"
"Language-Team: AE info <ae.info@utbm.fr>\n"
@ -123,7 +123,7 @@ msgstr "numéro"
msgid "journal"
msgstr "classeur"
#: accounting/models.py:194 core/models.py:513 core/models.py:806
#: accounting/models.py:194 core/models.py:513 core/models.py:809
#: counter/models.py:244 counter/models.py:287 counter/models.py:405
#: eboutic/models.py:15 eboutic/models.py:48
msgid "date"
@ -313,7 +313,7 @@ msgstr "Compte en banque : "
#: counter/templates/counter/last_ops.jinja:59
#: launderette/templates/launderette/launderette_admin.jinja:16
#: launderette/views.py:146 sas/templates/sas/moderation.jinja:35
#: sas/templates/sas/picture.jinja:71
#: sas/templates/sas/picture.jinja:65
msgid "Delete"
msgstr "Supprimer"
@ -592,7 +592,7 @@ msgstr "Un club avec ce nom UNIX existe déjà."
#: club/models.py:145 counter/models.py:386 counter/models.py:403
#: eboutic/models.py:14 eboutic/models.py:47 launderette/models.py:89
#: launderette/models.py:126 sas/models.py:76
#: launderette/models.py:126 sas/models.py:92
msgid "user"
msgstr "nom d'utilisateur"
@ -617,7 +617,8 @@ msgstr "L'utilisateur est déjà membre de ce club"
msgid "past member"
msgstr "Anciens membres"
#: club/templates/club/club_list.jinja:4 club/templates/club/club_list.jinja:24
#: club/templates/club/club_list.jinja:4
#: club/templates/club/club_list.jinja:24
msgid "Club list"
msgstr "Liste des clubs"
@ -679,8 +680,8 @@ msgstr "Du"
msgid "To"
msgstr "Au"
#: club/templates/club/club_sellings.jinja:5 club/views.py:59 club/views.py:216
#: counter/templates/counter/counter_main.jinja:19
#: club/templates/club/club_sellings.jinja:5 club/views.py:59
#: club/views.py:216 counter/templates/counter/counter_main.jinja:19
#: counter/templates/counter/last_ops.jinja:35
msgid "Sellings"
msgstr "Ventes"
@ -781,7 +782,7 @@ msgid "Old members"
msgstr "Anciens membres"
#: club/views.py:49 core/templates/core/base.jinja:44 core/views/user.py:146
#: sas/templates/sas/picture.jinja:83
#: sas/templates/sas/picture.jinja:77
msgid "Tools"
msgstr "Outils"
@ -795,7 +796,7 @@ msgstr "Propriétés"
msgid "Select user"
msgstr "Choisir un utilisateur"
#: club/views.py:150 sas/views.py:83 sas/views.py:129 sas/views.py:173
#: club/views.py:150 sas/views.py:70 sas/views.py:116 sas/views.py:158
msgid "You do not have the permission to do that"
msgstr "Vous n'avez pas la permission de faire cela"
@ -1114,11 +1115,11 @@ msgstr "Montrez vos statistiques de compte aux autres"
msgid "file name"
msgstr "nom du fichier"
#: core/models.py:503 core/models.py:653
#: core/models.py:503 core/models.py:656
msgid "parent"
msgstr "parent"
#: core/models.py:504 core/models.py:518
#: core/models.py:504 core/models.py:519
msgid "file"
msgstr "fichier"
@ -1134,11 +1135,11 @@ msgstr "miniature"
msgid "owner"
msgstr "propriétaire"
#: core/models.py:508 core/models.py:659
#: core/models.py:508 core/models.py:662
msgid "edit group"
msgstr "groupe d'édition"
#: core/models.py:509 core/models.py:660
#: core/models.py:509 core/models.py:663
msgid "view group"
msgstr "groupe de vue"
@ -1162,69 +1163,73 @@ msgstr "est modéré"
msgid "asked for removal"
msgstr "retrait demandé"
#: core/models.py:552
#: core/models.py:516
msgid "is in the SAS"
msgstr "est dans le SAS"
#: core/models.py:553
msgid "Character '/' not authorized in name"
msgstr "Le caractère '/' n'est pas autorisé dans les noms de fichier"
#: core/models.py:555 core/models.py:560
#: core/models.py:556 core/models.py:561
msgid "Loop in folder tree"
msgstr "Boucle dans l'arborescence des dossiers"
#: core/models.py:564
#: core/models.py:565
msgid "You can not make a file be a children of a non folder file"
msgstr ""
"Vous ne pouvez pas mettre un fichier enfant de quelque chose qui n'est pas "
"un dossier"
#: core/models.py:568
#: core/models.py:569
msgid "Duplicate file"
msgstr "Un fichier de ce nom existe déjà"
#: core/models.py:578
#: core/models.py:579
msgid "You must provide a file"
msgstr "Vous devez fournir un fichier"
#: core/models.py:608
#: core/models.py:611
msgid "Folder: "
msgstr "Dossier : "
#: core/models.py:610
#: core/models.py:613
msgid "File: "
msgstr "Fichier : "
#: core/models.py:652 core/models.py:656
#: core/models.py:655 core/models.py:659
msgid "page name"
msgstr "nom de la page"
#: core/models.py:657
#: core/models.py:660
msgid "owner group"
msgstr "groupe propriétaire"
#: core/models.py:661
#: core/models.py:664
msgid "lock user"
msgstr "utilisateur bloquant"
#: core/models.py:662
#: core/models.py:665
msgid "lock_timeout"
msgstr "décompte du déblocage"
#: core/models.py:689
#: core/models.py:692
msgid "Duplicate page"
msgstr "Une page de ce nom existe déjà"
#: core/models.py:695
#: core/models.py:698
msgid "Loop in page tree"
msgstr "Boucle dans l'arborescence des pages"
#: core/models.py:803
#: core/models.py:806
msgid "revision"
msgstr "révision"
#: core/models.py:804
#: core/models.py:807
msgid "page title"
msgstr "titre de la page"
#: core/models.py:805
#: core/models.py:808
msgid "page content"
msgstr "contenu de la page"
@ -1275,7 +1280,7 @@ msgstr "Wiki"
#: core/templates/core/base.jinja:73 sas/templates/sas/album.jinja:4
#: sas/templates/sas/main.jinja:4 sas/templates/sas/main.jinja.py:8
#: sas/templates/sas/picture.jinja:25
#: sas/templates/sas/picture.jinja:26
msgid "SAS"
msgstr "SAS"
@ -1466,11 +1471,13 @@ msgstr "login"
msgid "Lost password?"
msgstr "Mot de passe perdu ?"
#: core/templates/core/macros.jinja:27 core/templates/core/user_detail.jinja:27
#: core/templates/core/macros.jinja:27
#: core/templates/core/user_detail.jinja:27
msgid "Born: "
msgstr "Né le : "
#: core/templates/core/macros.jinja:31 core/templates/core/user_detail.jinja:48
#: core/templates/core/macros.jinja:31
#: core/templates/core/user_detail.jinja:48
msgid "Promo: "
msgstr "Promo : "
@ -1970,7 +1977,7 @@ msgid "Error creating folder %(folder_name)s: %(msg)s"
msgstr "Erreur de création du dossier %(folder_name)s : %(msg)s"
#: core/views/files.py:67 core/views/forms.py:181 core/views/forms.py:185
#: sas/views.py:58
#: sas/views.py:45
#, python-format
msgid "Error uploading file %(file_name)s: %(msg)s"
msgstr "Erreur d'envoi du fichier %(file_name)s : %(msg)s"
@ -2302,7 +2309,7 @@ msgstr "Pas de date de naissance renseigné"
#: counter/templates/counter/invoices_call.jinja:16
#: launderette/templates/launderette/launderette_admin.jinja:35
#: launderette/templates/launderette/launderette_click.jinja:13
#: sas/templates/sas/moderation.jinja:39 sas/templates/sas/picture.jinja:79
#: sas/templates/sas/moderation.jinja:39 sas/templates/sas/picture.jinja:73
msgid "Go"
msgstr "Valider"
@ -2779,7 +2786,7 @@ msgstr "Utilisateur qui sera conservé"
msgid "User that will be deleted"
msgstr "Utilisateur qui sera supprimé"
#: sas/models.py:77
#: sas/models.py:93
msgid "picture"
msgstr "photo"
@ -2788,7 +2795,7 @@ msgstr "photo"
msgid "preview"
msgstr "miniature"
#: sas/templates/sas/album.jinja:59
#: sas/templates/sas/album.jinja:49
msgid "Upload"
msgstr "Envoyer"
@ -2804,40 +2811,40 @@ msgstr "Modération du SAS"
msgid "Asked for removal"
msgstr "Retrait demandé"
#: sas/templates/sas/picture.jinja:65
#: sas/templates/sas/picture.jinja:59
msgid "People"
msgstr "Personne(s)"
#: sas/templates/sas/picture.jinja:85
#: sas/templates/sas/picture.jinja:79
msgid "HD version"
msgstr "Version HD"
#: sas/templates/sas/picture.jinja:88
#: sas/templates/sas/picture.jinja:82
msgid "Rotate left"
msgstr "Tourner vers la gauche"
#: sas/templates/sas/picture.jinja:89
#: sas/templates/sas/picture.jinja:83
msgid "Rotate right"
msgstr "Tourner vers la droite"
#: sas/templates/sas/picture.jinja:90
#: sas/templates/sas/picture.jinja:84
msgid "Ask for removal"
msgstr "Demander le retrait"
#: sas/views.py:25
#: sas/views.py:24
msgid "Add a new album"
msgstr "Ajouter un nouvel album"
#: sas/views.py:26
#: sas/views.py:25
msgid "Upload images"
msgstr "Envoyer les images"
#: sas/views.py:36
#: sas/views.py:35
#, python-format
msgid "Error creating album %(album)s: %(msg)s"
msgstr "Erreur de création de l'album %(album)s : %(msg)s"
#: sas/views.py:65
#: sas/views.py:52
msgid "Add user"
msgstr "Ajouter une personne"

View File

@ -14,11 +14,6 @@ class Picture(SithFile):
class Meta:
proxy = True
@property
def is_in_sas(self):
sas = SithFile.objects.filter(id=settings.SITH_SAS_ROOT_DIR_ID).first()
return sas in self.get_parent_list()
@property
def is_vertical(self):
im = Image.open(BytesIO(self.file.read()))
@ -79,11 +74,6 @@ class Album(SithFile):
class Meta:
proxy = True
@property
def is_in_sas(self):
sas = SithFile.objects.filter(id=settings.SITH_SAS_ROOT_DIR_ID).first()
return sas in self.get_parent_list()
def can_be_edited_by(self, user):
return user.is_in_group(settings.SITH_SAS_ADMIN_GROUP_ID)

View File

@ -33,7 +33,7 @@ class SASForm(forms.Form):
album.save()
except Exception as e:
self.add_error(None, _("Error creating album %(album)s: %(msg)s") %
{'album': self.cleaned_data['album_name'], 'msg': str(e.message)})
{'album': self.cleaned_data['album_name'], 'msg': repr(e)})
for f in files:
new_file = Picture(parent=parent, name=f.name, file=f, owner=owner, mime_type=f.content_type, size=f._size,
is_folder=False, is_moderated=automodere)
@ -189,7 +189,7 @@ class ModerationView(TemplateView):
def get_context_data(self, **kwargs):
kwargs = super(ModerationView, self).get_context_data(**kwargs)
kwargs['pictures'] = [p for p in Picture.objects.filter(is_moderated=False).order_by('id') if p.is_in_sas]
kwargs['pictures'] = Picture.objects.filter(is_moderated=False, is_in_sas=True).order_by('id')
return kwargs