optimisation des images.

This commit is contained in:
Jonas Legion 2021-06-23 09:43:14 +02:00
parent 8c3a13f0ba
commit 938c8e3c0f
6 changed files with 46 additions and 24 deletions

View File

@ -29,6 +29,9 @@ class EventAdmin(admin.ModelAdmin):
'reservations',
'datetime',
)
readonly_fields = (
'reservations',
)
staff_admin_site.register(Event, EventAdmin)

View File

@ -1,3 +1,12 @@
from django.db import models
# Create your models here.
# from django.contrib.auth.models import AbstractUser
# class TibilletUser(AbstractUser):
# pass

View File

@ -21,6 +21,7 @@ class OptionGenerale(models.Model):
verbose_name = _('Options Generales')
verbose_name_plural = _('Options Generales')
@receiver(post_save, sender=OptionGenerale)
def poids_option_generaler(sender, instance: OptionGenerale, created, **kwargs):
if created:
@ -31,7 +32,6 @@ def poids_option_generaler(sender, instance: OptionGenerale, created, **kwargs):
instance.save()
class Configuration(SingletonModel):
organisation = models.CharField(max_length=50)
short_description = models.CharField(max_length=250)
@ -46,27 +46,30 @@ class Configuration(SingletonModel):
img = StdImageField(upload_to='images/',
null=True, blank=True,
validators=[MaxSizeValidator(1920, 1920)],
# validators=[MaxSizeValidator(1920, 1920)],
variations={
'thumbnail': (1200, 1200),
}, delete_orphans=True)
'fhd': (1920, 1920),
'hdr': (720, 720),
'med': (480, 480),
'thumbnail': (150, 90),
},
delete_orphans=True
)
mollie_api_key = models.CharField(max_length=50,
blank=True, null=True)
reservation_par_user_max = models.PositiveSmallIntegerField(default=6)
jauge_max = models.PositiveSmallIntegerField()
jauge_max = models.PositiveSmallIntegerField(default=50)
option_generale_radio = models.ManyToManyField(OptionGenerale,
blank=True,
related_name="radiobutton")
blank=True,
related_name="radiobutton")
option_generale_checkbox = models.ManyToManyField(OptionGenerale,
blank=True,
related_name="checkbox")
blank=True,
related_name="checkbox")
class Event(models.Model):
@ -79,8 +82,12 @@ class Event(models.Model):
null=True, blank=True,
validators=[MaxSizeValidator(1920, 1920)],
variations={
'thumbnail': (500, 500),
}, delete_orphans=True)
'fhd': (1920, 1920),
'hdr': (1280, 1280),
'crop': (510, 310, True),
},
delete_orphans=True
)
reservations = models.PositiveSmallIntegerField(default=0)
@ -97,7 +104,6 @@ class Event(models.Model):
verbose_name_plural = _('Evenements')
class reservation(models.Model):
event = models.ForeignKey(Event,
on_delete=models.CASCADE,
@ -111,6 +117,6 @@ class reservation(models.Model):
(PAYEE, _('Payée')),
]
status = models.CharField(max_length=3, choices=TYPE_CHOICES, default=NON_VALIDEE,
verbose_name=_("Status de la réservation"))
verbose_name=_("Status de la réservation"))
qty = models.IntegerField()

View File

@ -39,12 +39,12 @@
<!-- Post -->
<section class="post">
<header class="major">
<span class="date">{{ event.datetime.date }}<br/>{{ event.datetime.time }}</span>
<span class="date">{{ event.datetime | date:"d F Y"}}<br/>{{ event.datetime | time }}</span>
<h1>{{ event.name }}</h1>
<p>{{ event.short_description }}</p>
</header>
<div class="image main"><img src="/media/{{ event.img }}" alt=""/></div>
<p>{{ event.long_description }}</p>
<div class="image main"><img src="/media/{{ event.img.fhd }}" alt=""/></div>
<p>{{ event.long_description | linebreaks}}</p>
</section>

View File

@ -50,11 +50,11 @@
<article class="post featured">
<header class="major">
<span class="date">{{ first_event.datetime.date }}<br/>{{ first_event.datetime.time }}</span>
<span class="date">{{ first_event.datetime | date:"d F Y"}}<br/>{{ first_event.datetime | time }}</span>
<h2><a href="/event/{{ first_event.pk }}">{{ first_event.name }}</a></h2>
<p>{{ first_event.short_description }}</p>
</header>
<a href="#" class="image main"><img src="/media/{{ first_event.img }}" alt=""/></a>
<a href="/event/{{ first_event.pk }}" class="image main"><img src="/media/{{ first_event.img.hdr }}" alt=""/></a>
<ul class="actions special">
<li><a href="/event/{{ first_event.pk }}" class="button large">RESERVEZ</a></li>
</ul>
@ -79,10 +79,10 @@
{% for event in events %}
<article>
<header>
<span class="date">{{ event.datetime.date }}</span>
<span class="date">{{ event.datetime | date:"d F Y"}}</span>
<h2><a href="/event/{{ event.pk }}">{{ event.name }}</a></h2>
</header>
<a href="#" class="image fit"><img src="/media/{{ event.img }}" alt=""/></a>
<a href="/event/{{ event.pk }}" class="image fit"><img src="/media/{{ event.img.crop }}" alt=""/></a>
<p>{{ event.short_description }}</p>
<ul class="actions special">
<li><a href="/event/{{ event.pk }}" class="button">RESERVEZ</a></li>

View File

@ -42,6 +42,8 @@ SHARED_APPS = (
# everything below here is optional
'django.contrib.auth',
'AuthBillet',
'rest_framework',
'rest_framework.authtoken',
'djoser',
@ -64,10 +66,11 @@ SHARED_APPS = (
TENANT_APPS = (
# The following Django contrib apps must be in TENANT_APPS
'django.contrib.contenttypes',
# your tenant-specific apps
'BaseBillet',
'ApiBillet',
# your tenant-specific apps
)
INSTALLED_APPS = list(SHARED_APPS) + [app for app in TENANT_APPS if app not in SHARED_APPS]
@ -128,6 +131,7 @@ DATABASE_ROUTERS = (
# Password validation
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
# AUTH_USER_MODEL = 'AuthBillet.TibilletUser'
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',