source: asadb/space/models.py @ a86a924

space-accessstablestage
Last change on this file since a86a924 was a86a924, checked in by Alex Dehnert <adehnert@…>, 14 years ago

Office access: start building basic models

  • Property mode set to 100755
File size: 1.6 KB
Line 
1import datetime
2
3from django.db import models
4
5import reversion
6
7import groups.models
8
9# Create your models here.
10
11class Space(models.Model):
12    number = models.CharField(max_length=20, unique=True, )
13    asa_owned = models.BooleanField(default=True, )
14    notes = models.TextField(blank=True, )
15
16    def __unicode__(self, ):
17        if self.asa_owned:
18            asa_str = "ASA"
19        else:
20            asa_str = "Non-ASA"
21        return u"%s (%s)" % (self.number, asa_str)
22reversion.register(Space)
23
24class SpaceAssignment(models.Model):
25    END_NEVER       = datetime.datetime.max
26
27    group = models.ForeignKey(groups.models.Group)
28    space = models.ForeignKey(Space)
29    start = models.DateField(default=datetime.datetime.now)
30    end = models.DateField(default=END_NEVER)
31
32    notes = models.TextField(blank=True, )
33    locker_num = models.CharField(max_length=10, blank=True, help_text='Locker number. If set, will use the "locker-access" OfficerRole to maintain access. If unset/blank, uses "office-access" and SpaceAccessListEntry for access.')
34
35    def expire(self, ):
36        self.end_time = datetime.datetime.now()-self.EXPIRE_OFFSET
37        self.save()
38
39class SpaceAccessListEntry(models.Model):
40    END_NEVER       = datetime.datetime.max
41
42    group = models.ForeignKey(groups.models.Group)
43    space = models.ForeignKey(Space)
44    start = models.DateTimeField(default=datetime.datetime.now)
45    end = models.DateTimeField(default=END_NEVER)
46
47    name = models.CharField(max_length=50)
48    card_number = models.CharField(max_length=20)
49
50    def expire(self, ):
51        self.end_time = datetime.datetime.now()-self.EXPIRE_OFFSET
52        self.save()
Note: See TracBrowser for help on using the repository browser.