Fix members pep8 and add docstrings
This commit is contained in:
+28
-16
@@ -1,31 +1,36 @@
|
||||
"""File containing Members app models."""
|
||||
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from datetime import datetime
|
||||
import csv
|
||||
import logging
|
||||
|
||||
|
||||
class BaseMember(models.Model):
|
||||
'''
|
||||
Base model for member.
|
||||
'''
|
||||
"""Abstract base model for member."""
|
||||
|
||||
first_name = models.CharField(_("First name"), max_length=127)
|
||||
last_name = models.CharField(_("Last name"), max_length=127)
|
||||
email = models.EmailField(_("Email"))
|
||||
POR = models.CharField(_("Place of residence"), max_length=255) # place of residence
|
||||
POR = models.CharField(_("Place of residence"),
|
||||
max_length=255) # place of residence
|
||||
AYY = models.BooleanField(_("AYY"), default=False)
|
||||
jas = models.BooleanField(_("JAS"), default=False)
|
||||
|
||||
class Meta:
|
||||
"""Meta for base member model."""
|
||||
|
||||
abstract = True
|
||||
|
||||
def __str__(self):
|
||||
"""Return member last name, first name and email."""
|
||||
return "{} {}, {}".format(self.last_name, self.first_name, self.email)
|
||||
|
||||
@staticmethod
|
||||
def from_csv(data):
|
||||
"""Construct member model from csv data."""
|
||||
print("Imported CSV data: {}".format(data))
|
||||
clean_data = data.strip().split('\n')
|
||||
csv_reader = csv.reader(clean_data)
|
||||
@@ -50,6 +55,7 @@ class BaseMember(models.Model):
|
||||
return True
|
||||
|
||||
def as_array(self):
|
||||
"""Return member model as an array."""
|
||||
return [
|
||||
self.first_name,
|
||||
self.last_name,
|
||||
@@ -61,21 +67,20 @@ class BaseMember(models.Model):
|
||||
|
||||
|
||||
class Request(BaseMember):
|
||||
'''
|
||||
Member request model represents one member request.
|
||||
'''
|
||||
"""Member request model represents one member request."""
|
||||
|
||||
submitted = models.DateTimeField(_('Submitted'), default=timezone.now)
|
||||
|
||||
def to_member(self):
|
||||
"""Convert array to member model."""
|
||||
member = Member.from_array(self.as_array())
|
||||
|
||||
return member
|
||||
|
||||
|
||||
class Payment(models.Model):
|
||||
'''
|
||||
Payment model representing one payment event
|
||||
'''
|
||||
"""Payment model representing one payment event."""
|
||||
|
||||
date = models.DateTimeField(_('Date'), default=datetime.now)
|
||||
source = models.CharField(_('Source'), choices=[
|
||||
('AYY', _('AYY')),
|
||||
@@ -90,16 +95,17 @@ class Payment(models.Model):
|
||||
related_name='payments')
|
||||
|
||||
def __str__(self):
|
||||
"""Return payment id and date."""
|
||||
return 'Payment no. {}, {}'.format(self.id, str(self.date))
|
||||
|
||||
|
||||
class Member(BaseMember):
|
||||
'''
|
||||
Member model represets one member on the registry.
|
||||
'''
|
||||
"""Member model represets one member on the registry."""
|
||||
|
||||
created = models.DateTimeField(_('Created'), default=datetime.now)
|
||||
|
||||
def last_paid(self):
|
||||
"""Return member's last payment."""
|
||||
try:
|
||||
payments = Payment.objects.filter(member=self)
|
||||
latest = payments.latest('date')
|
||||
@@ -110,6 +116,7 @@ class Member(BaseMember):
|
||||
|
||||
@staticmethod
|
||||
def from_array(array):
|
||||
"""Create member from array."""
|
||||
if len(array) != 6:
|
||||
raise Exception("Invalid array length for member instantiation")
|
||||
|
||||
@@ -124,16 +131,21 @@ class Member(BaseMember):
|
||||
|
||||
|
||||
class MemberConflict(models.Model):
|
||||
"""Model representing member conflict situation."""
|
||||
|
||||
first_member = models.ForeignKey('Member', related_name='%(class)s_first_member')
|
||||
second_member = models.ForeignKey('Member', related_name='%(class)s_second_member')
|
||||
first_member = models.ForeignKey(
|
||||
'Member', related_name='%(class)s_first_member')
|
||||
second_member = models.ForeignKey(
|
||||
'Member', related_name='%(class)s_second_member')
|
||||
|
||||
@property
|
||||
def first_member_form(self):
|
||||
"""Get first member form."""
|
||||
return MemberForm(instance=self.first_member)
|
||||
|
||||
@property
|
||||
def second_member_form(self):
|
||||
"""Get second member form."""
|
||||
return MemberForm(instance=self.second_member)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user