mirror of
https://github.com/ae-utbm/sith3.git
synced 2024-09-28 13:58:03 +00:00
87 lines
2.9 KiB
Python
87 lines
2.9 KiB
Python
from django.db import models
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from django.conf import settings
|
|
from django.core.urlresolvers import reverse
|
|
|
|
from core.models import User
|
|
from subscription.models import Subscriber
|
|
|
|
# Create your models here.
|
|
|
|
class Launderette(models.Model):
|
|
name = models.CharField(_('name'), max_length=30)
|
|
sellers = models.ManyToManyField(Subscriber, verbose_name=_('sellers'), related_name='launderettes', blank=True)
|
|
|
|
class Meta:
|
|
verbose_name = _('Launderette')
|
|
|
|
def is_owned_by(self, user):
|
|
"""
|
|
Method to see if that object can be edited by the given user
|
|
"""
|
|
if user.is_in_group(settings.SITH_GROUPS['launderette-admin']['name']):
|
|
return True
|
|
return False
|
|
|
|
def can_be_viewed_by(self, user):
|
|
return user.is_in_group(settings.SITH_MAIN_MEMBERS_GROUP)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
def get_absolute_url(self):
|
|
return reverse('launderette:launderette_list')
|
|
|
|
class Machine(models.Model):
|
|
name = models.CharField(_('name'), max_length=30)
|
|
launderette = models.ForeignKey(Launderette, related_name='machines', verbose_name=_('launderette'))
|
|
is_working = models.BooleanField(_('is working'), default=True)
|
|
|
|
class Meta:
|
|
verbose_name = _('Machine')
|
|
|
|
def is_owned_by(self, user):
|
|
"""
|
|
Method to see if that object can be edited by the given user
|
|
"""
|
|
if user.is_in_group(settings.SITH_GROUPS['launderette-admin']['name']):
|
|
return True
|
|
return False
|
|
|
|
def __str__(self):
|
|
return "%s - Launderette: %s - Working: %s" % (self.name, self.launderette, self.is_working)
|
|
|
|
class Token(models.Model):
|
|
name = models.IntegerField(_('name'))
|
|
launderette = models.ForeignKey(Launderette, related_name='tokens', verbose_name=_('launderette'))
|
|
type = models.CharField(_('type'), max_length=10, choices=[('WASHING', _('Washing')), ('DRYING', _('Drying'))])
|
|
|
|
class Meta:
|
|
verbose_name = _('Token')
|
|
|
|
def is_owned_by(self, user):
|
|
"""
|
|
Method to see if that object can be edited by the given user
|
|
"""
|
|
if user.is_in_group(settings.SITH_GROUPS['launderette-admin']['name']):
|
|
return True
|
|
return False
|
|
|
|
class Slot(models.Model):
|
|
start_date = models.DateTimeField(_('start date'))
|
|
type = models.CharField(_('type'), max_length=10, choices=[('WASHING', _('Washing')), ('DRYING', _('Drying'))])
|
|
machine = models.ForeignKey(Machine, related_name='slots', verbose_name=_('machine'))
|
|
token = models.ForeignKey(Token, related_name='slots', verbose_name=_('token'), blank=True, null=True)
|
|
user = models.ForeignKey(Subscriber, related_name='slots', verbose_name=_('user'))
|
|
|
|
class Meta:
|
|
verbose_name = _('Slot')
|
|
|
|
def full_clean(self):
|
|
return super(Slot, self).full_clean()
|
|
|
|
def __str__(self):
|
|
return str(self.user) + " - " + str(self.start_date)
|
|
|
|
|