Files
@ 2aae2af55dea
Branch filter:
Location: symposion_app/vendor/symposion/conference/models.py - annotation
2aae2af55dea
2.3 KiB
text/x-python
Disable client-side validation on credit_note forms
* HTML5 browsers have some clevers to do client-side validation of
forms
* Django activates this by default for certain field types
* However, in this case, there are three forms on this page. We rely
on two of them being invalid in order to figure out what processing
to do.
* So we need to disable the client-side validation.
* HTML5 browsers have some clevers to do client-side validation of
forms
* Django activates this by default for certain field types
* However, in this case, there are three forms on this page. We rely
on two of them being invalid in order to figure out what processing
to do.
* So we need to disable the client-side validation.
37e6d51792c9 e305e6b6e4a2 37e6d51792c9 1b51ef2ad8bd 37e6d51792c9 37e6d51792c9 97b6321f9f50 97b6321f9f50 97b6321f9f50 37e6d51792c9 37e6d51792c9 37e6d51792c9 37e6d51792c9 ef66c7ed1256 3207621058b8 ef66c7ed1256 37e6d51792c9 3207621058b8 3207621058b8 ef66c7ed1256 37e6d51792c9 1b51ef2ad8bd ef66c7ed1256 a95825ede8d4 37e6d51792c9 ef66c7ed1256 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 ef66c7ed1256 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 ef66c7ed1256 e305e6b6e4a2 fe0473a24a68 fe0473a24a68 e305e6b6e4a2 37e6d51792c9 37e6d51792c9 37e6d51792c9 37e6d51792c9 37e6d51792c9 37e6d51792c9 37e6d51792c9 ef66c7ed1256 3207621058b8 ef66c7ed1256 3207621058b8 3207621058b8 76c4a7b79c5d 37e6d51792c9 3207621058b8 3207621058b8 ef66c7ed1256 a95825ede8d4 a95825ede8d4 ef66c7ed1256 e305e6b6e4a2 fe0473a24a68 fe0473a24a68 1b579610618f e305e6b6e4a2 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 97b6321f9f50 | from django.db import models
from django.utils.translation import ugettext_lazy as _
from timezone_field import TimeZoneField
CONFERENCE_CACHE = {}
class Conference(models.Model):
"""
the full conference for a specific year, e.g. US PyCon 2012.
"""
title = models.CharField(_("Title"), max_length=100)
# when the conference runs
start_date = models.DateField(_("Start date"), null=True, blank=True)
end_date = models.DateField(_("End date"), null=True, blank=True)
# timezone the conference is in
timezone = TimeZoneField(blank=True, verbose_name=_("timezone"))
def __str__(self):
return self.title
def save(self, *args, **kwargs):
super(Conference, self).save(*args, **kwargs)
if self.id in CONFERENCE_CACHE:
del CONFERENCE_CACHE[self.id]
def delete(self):
pk = self.pk
super(Conference, self).delete()
try:
del CONFERENCE_CACHE[pk]
except KeyError:
pass
class Meta(object):
verbose_name = _("conference")
verbose_name_plural = _("conferences")
class Section(models.Model):
"""
a section of the conference such as "Tutorials", "Workshops",
"Talks", "Expo", "Sprints", that may have its own review and
scheduling process.
"""
conference = models.ForeignKey(Conference, verbose_name=_("Conference"))
name = models.CharField(_("Name"), max_length=100)
slug = models.SlugField(verbose_name=_("Slug"))
# when the section runs
start_date = models.DateField(_("Start date"), null=True, blank=True)
end_date = models.DateField(_("End date"), null=True, blank=True)
def __str__(self):
return "%s %s" % (self.conference, self.name)
class Meta(object):
verbose_name = _("section")
verbose_name_plural = _("sections")
ordering = ["start_date"]
def current_conference():
from django.conf import settings
try:
conf_id = settings.CONFERENCE_ID
except AttributeError:
from django.core.exceptions import ImproperlyConfigured
raise ImproperlyConfigured("You must set the CONFERENCE_ID setting.")
try:
current_conf = CONFERENCE_CACHE[conf_id]
except KeyError:
current_conf = Conference.objects.get(pk=conf_id)
CONFERENCE_CACHE[conf_id] = current_conf
return current_conf
|