implemented member request feature for members app
This commit is contained in:
@@ -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
@@ -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
@@ -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"}')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user