extended photologue photo to add an owner field

This commit is contained in:
aeltheos 2021-10-11 20:40:48 +02:00
parent e91e79ad85
commit 7c0ba18824
4 changed files with 86 additions and 16 deletions

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-11 11:48+0000\n"
"POT-Creation-Date: 2021-10-11 18:38+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,11 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: accounts/forms.py:9
msgid "Email address"
msgstr "Adresse email"
#: accounts/forms.py:13
#: photo21/forms.py:12
msgid ""
"Please enter a valid email address ending with `@crans.org` or `@ens-paris-"
"saclay.fr`."
@ -30,23 +26,23 @@ msgstr ""
"Veuillez entrer une adresse email valide finissant par `@crans.org` ou `@ens-"
"paris-saclay.fr`."
#: accounts/forms.py:25
#: photo21/forms.py:23
msgid "Must end with `@crans.org` or `@ens-paris-saclay.fr`."
msgstr "Doit finir par `@crans.org` ou `@ens-paris-saclay.fr`."
#: photo21/settings.py:144
#: photo21/settings.py:143
msgid "German"
msgstr ""
#: photo21/settings.py:145
#: photo21/settings.py:144
msgid "English"
msgstr ""
#: photo21/settings.py:146
#: photo21/settings.py:145
msgid "Spanish"
msgstr ""
#: photo21/settings.py:147
#: photo21/settings.py:146
msgid "French"
msgstr ""
@ -178,6 +174,10 @@ msgstr "Inscription"
msgid "Connected as"
msgstr "Connecté en tant que"
#: photologue_custom/models.py:39
msgid "owner"
msgstr "propriétaire"
#: photologue_custom/templates/photologue/gallery_archive.html:4
#: photologue_custom/templates/photologue/gallery_archive.html:9
msgid "Latest photo galleries"

View file

@ -1,8 +1,9 @@
from django.contrib import admin
from photologue.admin import GalleryAdmin as GalleryAdminDefault
from photologue.models import Gallery
from photologue.admin import PhotoAdmin as PhotoAdminDefault
from photologue.models import Gallery, Photo
from .models import GalleryExtended
from .models import GalleryExtended, PhotoExtended
class GalleryExtendedInline(admin.StackedInline):
@ -18,5 +19,20 @@ class GalleryAdmin(GalleryAdminDefault):
inlines = [GalleryExtendedInline, ]
class PhotoExtendedInline(admin.StackedInline):
model = PhotoExtended
can_delete = True
class PhotoAdmin(PhotoAdminDefault):
"""
Define our new one-to-one model as an inline of Photologue's Photo
model.
"""
inlines = [PhotoExtendedInline, ]
admin.site.unregister(Gallery)
admin.site.unregister(Photo)
admin.site.register(Gallery, GalleryAdmin)
admin.site.register(Photo, PhotoAdmin)

View file

@ -0,0 +1,29 @@
# Generated by Django 2.2.24 on 2021-10-11 18:40
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('photologue', '0011_auto_20190223_2138'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('photologue_custom', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='PhotoExtended',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='owner')),
('photo', models.OneToOneField(on_delete='cascade', related_name='extented', to='photologue.Photo')),
],
options={
'verbose_name': 'Extra fields',
'verbose_name_plural': 'Extra fields',
},
),
]

View file

@ -1,6 +1,8 @@
from django.db import models
from django.conf import settings
from taggit.managers import TaggableManager
from photologue.models import Gallery
from photologue.models import Gallery, Photo
from django.utils.translation import gettext_lazy as _
class GalleryExtended(models.Model):
@ -15,8 +17,31 @@ class GalleryExtended(models.Model):
tags = TaggableManager(blank=True)
class Meta:
verbose_name = u'Extra fields'
verbose_name_plural = u'Extra fields'
verbose_name = 'Extra fields'
verbose_name_plural = 'Extra fields'
def __str__(self):
return self.gallery.title
class PhotoExtended(models.Model):
# Extend Photologue Photo model.
photo = models.OneToOneField(
Photo,
related_name='extented',
on_delete='cascade'
)
# Add a owner field to PhotoExtended
owner = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
verbose_name=_("owner"),
)
class Meta:
verbose_name = 'Extra fields'
verbose_name_plural = 'Extra fields'
def __str__(self):
return str(self.photo)