X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Fmodels.py;h=eef4b69ba6ca7db46965e827a5854ef871c2a082;hb=97d8d152a5f832f6266a33622e25f4ae5f7dc068;hp=7eb28d0853ca099b754b3744af3423dac3d23e02;hpb=eb6db921938c72c0655ca2e381818a471f99f5fa;p=patchwork diff --git a/apps/patchwork/models.py b/apps/patchwork/models.py index 7eb28d0..eef4b69 100644 --- a/apps/patchwork/models.py +++ b/apps/patchwork/models.py @@ -28,7 +28,6 @@ import re import datetime, time import string import random -import hashlib from email.mime.text import MIMEText import email.utils @@ -50,9 +49,6 @@ class Person(models.Model): class Meta: verbose_name_plural = 'People' - class Admin: - pass - class Project(models.Model): linkname = models.CharField(max_length=255, unique=True) name = models.CharField(max_length=255, unique=True) @@ -62,9 +58,6 @@ class Project(models.Model): def __str__(self): return self.name - class Admin: - pass - class UserProfile(models.Model): user = models.ForeignKey(User, unique = True) primary_project = models.ForeignKey(Project, null = True) @@ -125,9 +118,6 @@ class UserProfile(models.Model): person.user = self.user person.save() - class Admin: - pass - def __str__(self): return self.name() @@ -138,46 +128,6 @@ def _confirm_key(): str += random.choice(allowedchars) return str; -class RegistrationRequest(models.Model): - username = models.CharField(max_length = 30, unique = True) - first_name = models.CharField(max_length = 50) - last_name = models.CharField(max_length = 50) - email = models.CharField(max_length = 200, unique = True) - password = models.CharField(max_length = 200) - key = models.CharField(max_length = 32, default = _confirm_key) - date = models.DateTimeField(default=datetime.datetime.now) - active = models.BooleanField(default = True) - - def create_user(self): - if not self.active: - return - user = User.objects.create_user(self.username, - self.email, self.password) - user.first_name = self.first_name - user.last_name = self.last_name - user.save() - profile = UserProfile(user = user) - profile.save() - self.active = False - self.save() - - # link a person to this user. if none exists, create. - person = None - try: - person = Person.objects.get(email = user.email) - except Exception: - pass - if not person: - person = Person(email = user.email) - - person.link_to_user(user) - person.save() - - return user - - class Admin: - pass - class UserPersonConfirmation(models.Model): user = models.ForeignKey(User) email = models.CharField(max_length = 200) @@ -200,11 +150,6 @@ class UserPersonConfirmation(models.Model): person.save() self.active = False - - class Admin: - pass - - class State(models.Model): name = models.CharField(max_length = 100) ordering = models.IntegerField(unique = True) @@ -216,18 +161,32 @@ class State(models.Model): class Meta: ordering = ['ordering'] - class Admin: - pass - class HashField(models.Field): __metaclass__ = models.SubfieldBase def __init__(self, algorithm = 'sha1', *args, **kwargs): self.algorithm = algorithm + try: + import hashlib + self.hashlib = True + except ImportError: + self.hashlib = False + if algorithm == 'sha1': + import sha + self.hash_constructor = sha.new + elif algorithm == 'md5': + import md5 + self.hash_constructor = md5.new + else: + raise NameError("Unknown algorithm '%s'" % algorithm) + super(HashField, self).__init__(*args, **kwargs) def db_type(self): - n_bytes = len(hashlib.new(self.algorithm).digest()) + if self.hashlib: + n_bytes = len(hashlib.new(self.algorithm).digest()) + else: + n_bytes = len(self.hash_constructor().digest()) if settings.DATABASE_ENGINE == 'postgresql': return 'bytea' elif settings.DATABASE_ENGINE == 'mysql': @@ -321,9 +280,6 @@ class Patch(models.Model): verbose_name_plural = 'Patches' ordering = ['date'] - class Admin: - pass - class Comment(models.Model): patch = models.ForeignKey(Patch) msgid = models.CharField(max_length=255, unique = True) @@ -332,9 +288,6 @@ class Comment(models.Model): headers = models.TextField(blank = True) content = models.TextField() - class Admin: - pass - class Meta: ordering = ['date'] @@ -351,9 +304,6 @@ class Bundle(models.Model): class Meta: unique_together = [('owner', 'name')] - class Admin: - pass - def public_url(self): if not self.public: return None