summaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
Diffstat (limited to 'project')
-rw-r--r--project/scipycon/base/__init__.py0
-rw-r--r--project/scipycon/base/models.py8
-rw-r--r--project/scipycon/proceedings/models.py9
-rw-r--r--project/scipycon/registration/models.py60
-rw-r--r--project/scipycon/talk/models.py56
-rw-r--r--project/scipycon/user/models.py16
6 files changed, 71 insertions, 78 deletions
diff --git a/project/scipycon/base/__init__.py b/project/scipycon/base/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/project/scipycon/base/__init__.py
diff --git a/project/scipycon/base/models.py b/project/scipycon/base/models.py
new file mode 100644
index 0000000..6637531
--- /dev/null
+++ b/project/scipycon/base/models.py
@@ -0,0 +1,8 @@
+from django.db import models
+
+
+class Base(models.Model):
+ """Base model which is in turn inherited by other models.
+ """
+
+ scope = models.CharField(max_length=255)
diff --git a/project/scipycon/proceedings/models.py b/project/scipycon/proceedings/models.py
index 5a76503..3e9e175 100644
--- a/project/scipycon/proceedings/models.py
+++ b/project/scipycon/proceedings/models.py
@@ -1,11 +1,10 @@
-# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
from django.db import models
from django.contrib.auth.models import User
+from project.scipycon.base import models as base_models
+
-class Paper(models.Model):
+class Paper(base_models.Base):
"""Data model for storing proceedings paper.
"""
@@ -22,7 +21,7 @@ class Paper(models.Model):
authors = models.ManyToManyField(User)
-class Attachments(models.Model):
+class Attachments(models.Base):
"""Stores attachments for papers.
"""
diff --git a/project/scipycon/registration/models.py b/project/scipycon/registration/models.py
index 4ef5356..e36dca0 100644
--- a/project/scipycon/registration/models.py
+++ b/project/scipycon/registration/models.py
@@ -1,16 +1,15 @@
-# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
-#django
from django.db import models
from django.contrib.auth.models import User
+from project.scipycon.base import models as base_models
+
from .utils import send_confirmation_payment_email
from .utils import send_banking_fix_email
from .labels import WIFI_CHOICES
from .labels import WIFI_HELP
+
SIZE_CHOICES = (
('S', 'S'),
('M', 'M'),
@@ -18,51 +17,52 @@ SIZE_CHOICES = (
('XL', 'XL'),
)
-class Wifi(models.Model):
+
+class Wifi(base_models.Base):
"""Defines wifi options at *PyCon"""
user = models.ForeignKey(User)
wifi = models.CharField(max_length=50, choices=WIFI_CHOICES,
help_text=WIFI_HELP, verbose_name="Laptop")
-class Registration(models.Model):
- """Defines registration at *PyCon"""
+
+class Registration(base_models.Model):
+ """Defines registration at SciPy.in"""
+
slug = models.SlugField()
+
registrant = models.ForeignKey(User)
+
organisation = models.CharField(max_length=255, blank=True)
+
occupation = models.CharField(max_length=255, blank=True)
+
city = models.CharField(max_length=255, blank=True)
+
postcode = models.CharField(max_length=255, blank=True)
-# beverage = models.CharField(max_length=255, blank=True)
-# diet = models.CharField(max_length=255, blank=True)
-# sponsor = models.CharField(max_length=255, blank=True)
+
+ phone_num = models.CharField(max_length=14, blank=True)
+
tshirt = models.CharField(max_length=2, choices=SIZE_CHOICES)
-# party = models.BooleanField(default=False)
-# discount = models.BooleanField(default=False)
- # scipy.in specific
conference = models.BooleanField(default=False)
- # scipy.in specific
+
tutorial = models.BooleanField(default=False)
- # scipy.in specific
+
sprint = models.BooleanField(default=False)
-# amount = models.IntegerField(default=0)
+ final_conference = models.BooleanField(default=False)
+
+ final_tutorial = models.BooleanField(default=False)
+
+ final_sprint = models.BooleanField(default=False)
+
allow_contact = models.BooleanField(default=False)
-# payment = models.BooleanField(default=False)
+
submitted = models.DateTimeField(auto_now_add=True)
+
last_mod = models.DateTimeField(auto_now=True)
def __unicode__(self):
- return 'Registration for user: <%s %s> %s' % (self.registrant.first_name,
- self.registrant.last_name, self.registrant.email)
-
-# def save(self, *args, **kwargs):
-# if(self.id):
-# old_reg = Registration.objects.get(pk=self.id)
-# if(old_reg.payment == False and self.payment == True \
-# and not self.sponsor):
-# send_confirmation_payment_email(self.registrant)
-# if(old_reg.slug.startswith('NZ') and self.slug.startswith('KPC') \
-# and not self.sponsor):
-# send_banking_fix_email(self.registrant, self.slug)
-# super(Registration, self).save(args, kwargs)
+ return 'Registration for user: <%s %s> %s' % (
+ self.registrant.first_name,
+ self.registrant.last_name, self.registrant.email)
diff --git a/project/scipycon/talk/models.py b/project/scipycon/talk/models.py
index de0b11f..2bc4729 100644
--- a/project/scipycon/talk/models.py
+++ b/project/scipycon/talk/models.py
@@ -1,15 +1,13 @@
-# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
-#django
from django.db import models
from django.contrib.auth.models import User
-#tagging
from tagging import register
from tagging.fields import TagField
from tagging.utils import parse_tag_input
+from project.scipycon.base import models as base_models
+
+
DURATION_CHOICES = (
('10', 'Lightning Talk (10 mins)'),
('20', 'Short Talk (20 mins)'),
@@ -23,51 +21,37 @@ AUDIENCE_CHOICES = (
('advanced', 'advanced programmer'),
)
-#TOPIC_CHOICES = (
-# ('Core Python', 'Core Python'),
-# ('Other implementations: Jython, IronPython, PyPy, and Stackless', 'Other implementations: Jython, IronPython, PyPy, and Stackless'),
-# ('Python libraries and extensions', 'Python libraries and extensions'),
-# ('Python 3k', 'Python 3k'),
-# ('Databases', 'Databases'),
-# ('Documentation', 'Documentation'),
-# ('GUI Programming', 'GUI Programming'),
-# ('Game Programming', 'Game Programming'),
-# ('Network Programming', 'Network Programming'),
-# ('Open Source Python projects', 'Open Source Python projects'),
-# ('Packaging Issues', 'Packaging Issues'),
-# ('Programming Tools', 'Programming Tools'),
-# ('Project Best Practices', 'Project Best Practices'),
-# ('Embedding and Extending', 'Embedding and Extending'),
-# ('Science and Maths', 'Science and Maths'),
-# ('Web-based Systems', 'Web-based Systems'),
-#)
-
-class Talk(models.Model):
- """Defines talks at *PyCon"""
+
+class Talk(base_models.Base):
+ """Defines talks at SciPy.in
+ """
+
slug = models.SlugField()
+
speaker = models.ForeignKey(User)
+
authors_bio = models.TextField()
+
contact = models.EmailField()
+
title = models.CharField(max_length=1024)
+
abstract = models.TextField()
-# outline = models.TextField()
- topic = models.CharField(max_length=255,
- #choices=TOPIC_CHOICES,
- blank=True)
-# topic_other = models.CharField(max_length=255, blank=True)
+
+ topic = models.CharField(max_length=255, blank=True)
+
duration = models.CharField(max_length=3, choices=DURATION_CHOICES)
+
audience = models.CharField(max_length=32, choices=AUDIENCE_CHOICES, blank=True)
-# audience_other = models.CharField(max_length=128, blank=True)
+
approved = models.BooleanField(default=False)
+
submitted = models.DateTimeField(auto_now_add=True)
+
last_mod = models.DateTimeField(auto_now=True)
-# tags = TagField(blank=True)
def __unicode__(self):
return self.title
def get_tag_list(self):
return parse_tag_input(self.tags)
-
-# register(Talk) # saving talk failed - see:
-# http://code.google.com/p/django-tagging/issues/detail?id=152
diff --git a/project/scipycon/user/models.py b/project/scipycon/user/models.py
index 85cf762..2db6c4a 100644
--- a/project/scipycon/user/models.py
+++ b/project/scipycon/user/models.py
@@ -1,19 +1,21 @@
-# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
-#django
from django.db import models
from django.conf import settings
from django.db.models.signals import post_save
from django.contrib.auth.models import User
-class UserProfile(models.Model):
- """
- Extend atributes for django User
+from project.scipycon.base import models as base_models
+
+
+class UserProfile(base_models.Base):
+ """Extend atributes for django User
"""
+
user = models.ForeignKey(User, unique=True)
+
url = models.URLField(blank=True, verify_exists=False)
+
photo = models.CharField(max_length=64, blank=True)
+
about = models.TextField(blank=True)
def __unicode__(self):