optimisation des images.
This commit is contained in:
parent
8c3a13f0ba
commit
938c8e3c0f
|
|
@ -29,6 +29,9 @@ class EventAdmin(admin.ModelAdmin):
|
|||
'reservations',
|
||||
'datetime',
|
||||
)
|
||||
readonly_fields = (
|
||||
'reservations',
|
||||
)
|
||||
|
||||
staff_admin_site.register(Event, EventAdmin)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,12 @@
|
|||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
# from django.contrib.auth.models import AbstractUser
|
||||
|
||||
|
||||
|
||||
# class TibilletUser(AbstractUser):
|
||||
# pass
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
@ -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>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Reference in New Issue