Fixes IndexError on save with removed member forwarding email (#11)
* Fixed IndexError if a non existent field gets queried for a value. Using dict.get to either get a value or provide a reasonable default * Removed list construction around new_key value * Clean up source code with 80x25 terminal and vim (complies with PEP-8) * Added some docstrings
This commit is contained in:
parent
4f093c0899
commit
09af25761c
7 changed files with 409 additions and 194 deletions
|
|
@ -1,43 +1,73 @@
|
|||
from django.db import models
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Django models
|
||||
"""
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.db import models
|
||||
from django.db.models import signals
|
||||
|
||||
from account.signals import create_profile, delete_profile
|
||||
|
||||
|
||||
class UserProfile(models.Model):
|
||||
user = models.OneToOneField(User, editable=False, on_delete=models.CASCADE)
|
||||
uid = models.CharField(verbose_name="User-ID",
|
||||
max_length=8,
|
||||
null=True,
|
||||
default=None)
|
||||
sippin = models.CharField(verbose_name="SIP PIN",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None)
|
||||
gastropin = models.CharField(verbose_name="Gastro PIN",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None)
|
||||
rfid = models.CharField(verbose_name="RFID",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None)
|
||||
macaddress = models.CharField(verbose_name="MAC-Address",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None)
|
||||
clabpin = models.CharField(verbose_name="c-lab PIN",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None)
|
||||
preferred_email = models.CharField(verbose_name="preferred e-mail address",
|
||||
max_length=1024,
|
||||
null=True,
|
||||
default=None)
|
||||
"""
|
||||
UserProfile to be attached to a django User model.
|
||||
"""
|
||||
user = models.OneToOneField(
|
||||
User,
|
||||
editable=False,
|
||||
on_delete=models.CASCADE
|
||||
)
|
||||
uid = models.CharField(
|
||||
verbose_name="User-ID",
|
||||
max_length=8,
|
||||
null=True,
|
||||
default=None
|
||||
)
|
||||
sippin = models.CharField(
|
||||
verbose_name="SIP PIN",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None
|
||||
)
|
||||
gastropin = models.CharField(
|
||||
verbose_name="Gastro PIN",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None
|
||||
)
|
||||
rfid = models.CharField(
|
||||
verbose_name="RFID",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None
|
||||
)
|
||||
macaddress = models.CharField(
|
||||
verbose_name="MAC-Address",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None
|
||||
)
|
||||
clabpin = models.CharField(
|
||||
verbose_name="c-lab PIN",
|
||||
max_length=255,
|
||||
null=True,
|
||||
blank=True,
|
||||
default=None
|
||||
)
|
||||
preferred_email = models.CharField(
|
||||
verbose_name="preferred e-mail address",
|
||||
max_length=1024,
|
||||
null=True,
|
||||
default=None
|
||||
)
|
||||
is_member = models.BooleanField(default=False, editable=False)
|
||||
is_ldap_admin = models.BooleanField(default=False, editable=False)
|
||||
is_circle_member = models.BooleanField(default=False, editable=False)
|
||||
|
|
@ -49,6 +79,7 @@ class UserProfile(models.Model):
|
|||
def __unicode__(self):
|
||||
return 'Profile: %s' % self.user.username
|
||||
|
||||
|
||||
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])
|
||||
signals.post_save.connect(create_profile, sender=User)
|
||||
signals.pre_delete.connect(delete_profile, sender=User)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue