implemented member request feature for members app

This commit is contained in:
okalintu
2016-07-25 19:09:20 +03:00
parent a9988a03ee
commit dee921a694
5 changed files with 113 additions and 3 deletions
+25
View File
@@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9 on 2016-07-25 15:57
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('members', '0002_auto_20160530_1642'),
]
operations = [
migrations.CreateModel(
name='MemberRequest',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('submitted', models.DateTimeField(default=django.utils.timezone.now)),
('member', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='members.Member')),
],
),
]
+13 -1
View File
@@ -1,4 +1,5 @@
from django.db import models
from django.utils import timezone
class Member(models.Model):
'''
@@ -27,7 +28,7 @@ class Member(models.Model):
def create_from_dict(cls,d):
mbr = cls()
mbr.update_from_dict(d)
return mbr.get_dict()
return mbr
def update_from_dict(self,d):
dmap = {
@@ -47,3 +48,14 @@ class Member(models.Model):
def __str__(self):
return "{} {}".format(first_name, last_name)
class MemberRequest(models.Model):
member = models.ForeignKey(Member)
submitted = models.DateTimeField(default=timezone.now)
def get_dict(self):
return {
'id': self.id,
'member': self.member.get_dict(),
'submitted': self.submitted.isoformat(" ")
}
+30 -2
View File
@@ -1,7 +1,7 @@
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse, HttpResponseBadRequest
from django.core.exceptions import ValidationError
from members.models import Member
from members.models import Member, MemberRequest
import json
def index(request, *args, **kwargs):
@@ -49,6 +49,34 @@ def member(request,*args, **kwargs):
try:
data = json.loads(request.body.decode("utf-8"))
memdict = Member.create_from_dict(data)
return HttpResponse(json.dumps(memdict))
return HttpResponse(json.dumps(mem.get_dict()))
except ValueError:
return HttpResponseBadRequest('{"error" : "Invalid parameters supplied"}')
def member_requests(request, *args, **kwargs):
reqs = list(map(lambda r: r.get_dict(),MemberRequest.objects.all()))
return HttpResponse(json.dumps(reqs))
def new_member_request(request, *args, **kwargs):
try:
data = json.loads(request.body.decode("utf-8"))
mem = Member.create_from_dict(data)
req = MemberRequest.objects.create(member=mem)
return HttpResponse(json.dumps(mem.get_dict()))
except ValueError:
return HttpResponseBadRequest('{"error" : "Invalid parameters supplied"}')
def handle_mem_request(request, idx, *args, **kwargs):
try:
req = MemberRequest.objects.get(pk=idx)
except MemberRequest.DoesNotExist:
resp = HttpResponse('{"error":"object not found"}')
resp.status_code = 404
return resp
if request.method == 'DELETE':
req.member.delete()
else: # method == POST because other aren't allowed here
req.delete()
return HttpResponse('{"status":"success"}')