diff --git a/dusken/api/membership.py b/dusken/api/membership.py index 128e201..1498e72 100644 --- a/dusken/api/membership.py +++ b/dusken/api/membership.py @@ -22,6 +22,7 @@ class MembershipResource(ModelResource): detail_allowed_methods = [ 'get', 'patch' ] authorization = MyDjangoAuthorization() authentication = MyApiKeyAuthentication() + excludes = [ 'end_date'] filtering = { 'member' : ALL_WITH_RELATIONS, 'expires' : [ 'exact','range','gt','gte','lt','lte' ], #TODO: Doesn't work. diff --git a/dusken/fixtures/membership.json b/dusken/fixtures/membership.json index bf4d19b..0bd59ab 100644 --- a/dusken/fixtures/membership.json +++ b/dusken/fixtures/membership.json @@ -8,7 +8,8 @@ "created": "2013-09-11T18:45:13.341Z", "payment": null, "membership_type": 1, - "start_date": "2013-09-11" + "start_date": "2013-09-11", + "end_date": "2013-09-11" } }, { "pk": 2, @@ -19,7 +20,8 @@ "created": "2013-09-11T18:45:30.084Z", "payment": null, "membership_type": 1, - "start_date": "2013-09-15" + "start_date": "2013-09-15", + "end_date": "2013-09-11" } }, { "pk": 3, @@ -30,7 +32,8 @@ "created": "2013-09-11T18:45:53.522Z", "payment": null, "membership_type": 2, - "start_date": "2013-09-11" + "start_date": "2013-09-11", + "end_date": "2013-09-11" } } ] diff --git a/dusken/fixtures/membershiptype.json b/dusken/fixtures/membershiptype.json index fac7934..3f29fa2 100644 --- a/dusken/fixtures/membershiptype.json +++ b/dusken/fixtures/membershiptype.json @@ -5,8 +5,7 @@ "fields": { "updated": "2013-09-11T18:44:13.123Z", "name": "Medlemskap ved DNS", - "created": "2013-09-11T18:44:13.123Z", - "end_date": "2013-09-11" + "created": "2013-09-11T18:44:13.123Z" } }, { @@ -15,8 +14,7 @@ "fields": { "updated": "2013-09-11T18:44:31.824Z", "name": "Halvtaarsmedlemskap", - "created": "2013-09-11T18:44:31.824Z", - "end_date": "2013-09-11" + "created": "2013-09-11T18:44:31.824Z" } } ] diff --git a/dusken/models.py b/dusken/models.py index f48e8a0..dd7ff31 100644 --- a/dusken/models.py +++ b/dusken/models.py @@ -32,15 +32,19 @@ class Member(django.contrib.auth.models.AbstractUser): class Membership(BaseModel): def __unicode__(self): - return u"{member}: {fromdate}".format(member=self.member, fromdate=self.start_date) + return u"{0}: {1} - {2}".format( + self.member, + self.start_date, + self.end_date) start_date = models.DateField() + end_date = models.DateField(null=True, blank=True) membership_type = models.ForeignKey('dusken.MembershipType') payment = models.ForeignKey('dusken.Payment', unique=True, null=True, blank=True) member = models.ForeignKey('dusken.Member') def expires(self): - return self.membership_type.end_date + return self.end_date def owner(self): return self.member @@ -50,7 +54,6 @@ class MembershipType(BaseModel): return u"{}".format(self.name) name = models.CharField(max_length=50, unique=True) - end_date = models.DateField(null=True, blank=True) # TODO move to Membership (no new Membership types every year) is_active = models.BooleanField(default=True) does_not_expire = models.BooleanField(default=False)