From 459317ed49c60b895c5efea3c7db1c93e0629dc4 Mon Sep 17 00:00:00 2001 From: Corentin Wallez Date: Sat, 2 Feb 2013 18:03:11 +0000 Subject: [PATCH] events - use XWorkflows --- xnet/events/admin.py | 4 ++-- xnet/events/models.py | 32 ++++++++++++++++++++------------ 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/xnet/events/admin.py b/xnet/events/admin.py index 43f3ddf..5205ffa 100644 --- a/xnet/events/admin.py +++ b/xnet/events/admin.py @@ -27,8 +27,8 @@ admin.site.register(models.PriceOption, PriceOptionAdmin) class RegistrationAdmin(admin.ModelAdmin): - list_display = ['status'] - list_filter = ['status'] + list_display = ['state'] + list_filter = ['state'] search_fields = [''] admin.site.register(models.Registration, RegistrationAdmin) diff --git a/xnet/events/models.py b/xnet/events/models.py index f61cc12..f599cf4 100644 --- a/xnet/events/models.py +++ b/xnet/events/models.py @@ -1,6 +1,9 @@ # -*- coding: utf-8 -*- from django.db import models from django.utils.translation import ugettext_lazy as _ + +from django_xworkflows import models as xwf_models + import xnet.accounts.models as accounts_models class Event(models.Model): @@ -71,17 +74,22 @@ class PriceOption(models.Model): verbose_name_plural = _(u"options de paiement") -class Registration(models.Model): - STATUS_PENDING = 'pending' - STATUS_ACCEPTED = 'accepted' - STATUS_CANCELLED = 'cancelled' - - STATUS_CHOICES = ( - (STATUS_PENDING, _(u"en attente")), - (STATUS_ACCEPTED, _(u"accepté")), - (STATUS_CANCELLED, _(u"annulé")), +class RegistrationWorkflow(xwf_models.Workflow): + states = ( + ('pending', u"En attente"), + ('accepted', u"Accepté"), + ('cancelled', u"Annulé"), ) + transitions = ( + ('accept', ['pending'], 'accepted'), + ('cancel', ['pending', 'accepted'], 'cancelled'), + ) + initial_state = 'pending' + + log_model = '' # We don't want logs + +class Registration(models.Model): user = models.ForeignKey(accounts_models.Account, verbose_name=_(u"utilisateur enregistré"), related_name=_(u"event_registrations")) dn_event = models.ForeignKey(EventDescription, verbose_name=_(u"événement associé"), @@ -89,12 +97,12 @@ class Registration(models.Model): option = models.ForeignKey(PriceOption, verbose_name=_(u"options associées"), related_name=_(u"registrations")) date_registered = models.DateTimeField(verbose_name=_(u"date d'enregistrement")) - status = models.CharField(max_length=10, choices=STATUS_CHOICES, verbose_name=_(u"statut")) + state = xwf_models.StateField(RegistrationWorkflow, verbose_name=u"état") def __unicode__(self): return "%s, %s, %s".format(unicode(user), unicode(event), unicode(option)) class Meta: - verbose_name = _(u"option de paiement") - verbose_name_plural = _(u"options de paiement") + verbose_name = _(u"inscription") + verbose_name_plural = _(u"inscriptions") -- 2.1.4