Archived
Organizes models.py, adds ISO 3166-1 contry code
This commit is contained in:
1 parent
b084ac3634
commit
2c17e1f4d5
2 files changed
+94
-94
No files matched your search
@@ -4,6 +4,7 @@
|
||||
"id" : 1,
|
||||
"created": "2013-08-21T19:37:24.851Z",
|
||||
"name": "Norway",
|
||||
"code": "NO",
|
||||
"updated": "2013-08-21T19:37:24.851Z"
|
||||
},
|
||||
"model": "dusken.country",
|
||||
@@ -14,6 +15,7 @@
|
||||
"id" : 2,
|
||||
"created": "2013-08-21T19:37:31.577Z",
|
||||
"name": "Netherlands",
|
||||
"code": "NL",
|
||||
"updated": "2013-08-21T19:37:31.577Z"
|
||||
},
|
||||
"model": "dusken.country",
|
||||
|
||||
+92
-94
@@ -2,111 +2,46 @@ import django
|
||||
from django.db import models
|
||||
from tastypie.models import create_api_key
|
||||
|
||||
class Country(models.Model):
|
||||
class Meta:
|
||||
verbose_name_plural = "Countries"
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
name = models.CharField(max_length=50, unique=True)
|
||||
class BaseModel(models.Model):
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Address(models.Model):
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = "Addresses"
|
||||
|
||||
def __unicode__(self):
|
||||
return u"{street}, {code} {city}, {country}".format(street=self.street_address, code=self.postal_code, city=self.city, country=self.country)
|
||||
|
||||
street_address = models.CharField(max_length=255)
|
||||
city = models.CharField(max_length=100)
|
||||
country = models.ForeignKey(Country)
|
||||
postal_code = models.CharField(max_length=10)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Institution(models.Model):
|
||||
def __unicode__(self):
|
||||
return u'%s - %s' % (self.short_name, self.name)
|
||||
|
||||
name = models.CharField(max_length=255)
|
||||
short_name = models.CharField(max_length=16)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
||||
class PlaceOfStudy(models.Model):
|
||||
def __unicode__(self):
|
||||
return u"{institution}, {year}".format(institution=self.institution, year=self.from_date.year)
|
||||
|
||||
from_date = models.DateField()
|
||||
institution = models.ForeignKey(Institution)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
abstract = True
|
||||
|
||||
class Member(django.contrib.auth.models.User):
|
||||
def __unicode__(self):
|
||||
if len(self.first_name) + len(self.last_name) > 0:
|
||||
return u'{first} {last} ({username})'.format(first=self.first_name, last=self.last_name, username=self.username)
|
||||
return u'{first} {last} ({username})'.format(
|
||||
first=self.first_name,
|
||||
last=self.last_name,
|
||||
username=self.username)
|
||||
return u"{username}".format(username=self.username)
|
||||
|
||||
phone_number = models.IntegerField(unique=True, null=True, blank=True)
|
||||
date_of_birth = models.DateField(blank=True, null=True)
|
||||
legacy_id = models.IntegerField(unique=True, null=True, blank=True)
|
||||
address = models.ForeignKey(Address, null=True, blank=True)
|
||||
place_of_study = models.ManyToManyField(PlaceOfStudy, null=True, blank=True)
|
||||
address = models.ForeignKey('dusken.Address', null=True, blank=True)
|
||||
place_of_study = models.ManyToManyField('dusken.PlaceOfStudy', null=True, blank=True)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
||||
class FacebookAuth(models.Model):
|
||||
class Membership(BaseModel):
|
||||
def __unicode__(self):
|
||||
return u"{}".format(self.token)
|
||||
return u"{member}: {fromdate}".format(member=self.member, fromdate=self.start_date)
|
||||
|
||||
token = models.CharField(max_length=255, unique=True, null=True, blank=True)
|
||||
token_expires = models.DateTimeField(null=True, blank=True)
|
||||
member = models.OneToOneField(Member, null=True, blank=True)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
||||
class GoogleAuth(models.Model):
|
||||
def __unicode__(self):
|
||||
return u"{}".format(self.token)
|
||||
start_date = models.DateField()
|
||||
mtype = models.ForeignKey('dusken.MembershipType', db_column='type')
|
||||
payment = models.ForeignKey('dusken.Payment', unique=True, null=True, blank=True)
|
||||
member = models.ForeignKey('dusken.Member')
|
||||
|
||||
token = models.CharField(max_length=255, unique=True, null=True, blank=True)
|
||||
token_expires = models.DateTimeField(null=True, blank=True)
|
||||
member = models.OneToOneField(Member, null=True, blank=True)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
||||
class ExtendedMemberDetail(models.Model):
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
pass
|
||||
|
||||
class PaymentType(models.Model):
|
||||
def __unicode__(self):
|
||||
return u"{}".format(self.name)
|
||||
|
||||
name = models.CharField(max_length=255)
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
class Payment(models.Model):
|
||||
def __unicode__(self):
|
||||
return self.payment_type #TODO
|
||||
|
||||
# Note: More like tokens?
|
||||
payment_type = models.ForeignKey(PaymentType)
|
||||
value = models.IntegerField()
|
||||
transaction_id = models.IntegerField(unique=True, null=True, blank=True)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
def expires(self):
|
||||
return self.mtype.end_date()
|
||||
|
||||
'''
|
||||
TODO: should validate end_day_of_month and end_month (use datetime exceptions)
|
||||
'''
|
||||
class MembershipType(models.Model):
|
||||
class MembershipType(BaseModel):
|
||||
def __unicode__(self):
|
||||
return u"{}".format(self.name)
|
||||
|
||||
@@ -114,8 +49,6 @@ class MembershipType(models.Model):
|
||||
duration_months = models.IntegerField(default=12)
|
||||
end_day_of_month = models.IntegerField(default=31)
|
||||
end_month = models.IntegerField(default=7)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
def end_date(self):
|
||||
@@ -134,23 +67,88 @@ class MembershipType(models.Model):
|
||||
|
||||
return min(end1, end2)
|
||||
|
||||
class Membership(models.Model):
|
||||
class PaymentType(models.Model):
|
||||
def __unicode__(self):
|
||||
return u"{member}: {fromdate}".format(member=self.member, fromdate=self.start_date)
|
||||
return u"{}".format(self.name)
|
||||
|
||||
start_date = models.DateField()
|
||||
mtype = models.ForeignKey(MembershipType, db_column='type')
|
||||
payment = models.ForeignKey(Payment, unique=True, null=True, blank=True)
|
||||
member = models.ForeignKey(Member)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
name = models.CharField(max_length=255)
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
def expires(self):
|
||||
return self.mtype.end_date()
|
||||
class Payment(BaseModel):
|
||||
def __unicode__(self):
|
||||
return self.payment_type #TODO
|
||||
|
||||
# Note: More like tokens?
|
||||
payment_type = models.ForeignKey('dusken.PaymentType')
|
||||
value = models.IntegerField()
|
||||
transaction_id = models.IntegerField(unique=True, null=True, blank=True)
|
||||
|
||||
|
||||
class FacebookAuth(BaseModel):
|
||||
def __unicode__(self):
|
||||
return u"{}".format(self.token)
|
||||
|
||||
token = models.CharField(max_length=255, unique=True, null=True, blank=True)
|
||||
token_expires = models.DateTimeField(null=True, blank=True)
|
||||
member = models.OneToOneField('dusken.Member', null=True, blank=True)
|
||||
|
||||
class GoogleAuth(BaseModel):
|
||||
def __unicode__(self):
|
||||
return u"{}".format(self.token)
|
||||
|
||||
token = models.CharField(max_length=255, unique=True, null=True, blank=True)
|
||||
token_expires = models.DateTimeField(null=True, blank=True)
|
||||
member = models.OneToOneField('dusken.Member', null=True, blank=True)
|
||||
|
||||
class Address(BaseModel):
|
||||
class Meta:
|
||||
verbose_name_plural = "Addresses"
|
||||
|
||||
def __unicode__(self):
|
||||
return u"{street}, {code} {city}, {country}".format(
|
||||
street=self.street_address,
|
||||
code=self.postal_code,
|
||||
city=self.city,
|
||||
country=self.country)
|
||||
|
||||
street_address = models.CharField(max_length=255)
|
||||
postal_code = models.CharField(max_length=10)
|
||||
city = models.CharField(max_length=100)
|
||||
country = models.ForeignKey('dusken.Country', null=True, blank=True)
|
||||
|
||||
class Country(BaseModel):
|
||||
class Meta:
|
||||
verbose_name_plural = "Countries"
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
name = models.CharField(max_length=100, unique=True)
|
||||
code = models.CharField(max_length=3, unique=True) #ISO 3166-1 alpha 2
|
||||
|
||||
class PlaceOfStudy(BaseModel):
|
||||
def __unicode__(self):
|
||||
return u"{institution}, {year}".format(
|
||||
institution=self.institution,
|
||||
year=self.from_date.year)
|
||||
|
||||
from_date = models.DateField()
|
||||
institution = models.ForeignKey('dusken.Institution')
|
||||
|
||||
class Institution(BaseModel):
|
||||
def __unicode__(self):
|
||||
return u'%s - %s' % (self.short_name, self.name)
|
||||
|
||||
name = models.CharField(max_length=255)
|
||||
short_name = models.CharField(max_length=16)
|
||||
|
||||
class ExtendedMemberDetail(BaseModel):
|
||||
pass
|
||||
|
||||
class Group(django.contrib.auth.models.Group):
|
||||
def __unicode__(self):
|
||||
return u"{} ({})".format(self.name, self.posix_name)
|
||||
|
||||
posix_name = models.CharField(max_length=255, unique=True)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
||||
Reference in new issue
Block a user