diff --git a/members/forms.py b/members/forms.py
new file mode 100644
index 0000000..7fcbdea
--- /dev/null
+++ b/members/forms.py
@@ -0,0 +1,9 @@
+from django import forms
+
+class MemberForm(forms.Form):
+ first_name = forms.CharField(label="First name", max_length=100)
+ last_name = forms.CharField(label="Last name", max_length=100)
+ email = forms.EmailField(label="Email", max_length=100)
+ is_AYY = forms.BooleanField(label="AYY", required=False, initial=True)
+ is_JAS = forms.BooleanField(label="JAS", required=False, initial=True)
+ residence = forms.CharField(label="Place of residence", max_length=100)
\ No newline at end of file
diff --git a/members/templates/add_member.html b/members/templates/add_member.html
index 72ac254..4a7eab7 100644
--- a/members/templates/add_member.html
+++ b/members/templates/add_member.html
@@ -1,38 +1,45 @@
{% extends "members_base.html" %}
+{% load bootstrap3 %}
+
{% block content %}
-
+
diff --git a/members/urls.py b/members/urls.py
index 20eb6e9..0c6029a 100644
--- a/members/urls.py
+++ b/members/urls.py
@@ -14,6 +14,8 @@ from members.views import new_member_request
from members.views import member_requests
from members.views import export_csv as mem_csv_export
from members.views import tommy_blooper
+from members.views import submit_member
+
# members API
from members.views import MembersList as memsListAPI
from members.views import MemberDetails as memDetailAPI
@@ -50,6 +52,7 @@ urlpatterns = [
url(r'^rest/api/members/(?P
\d+)/$', memDetailAPI.as_view()),
url(r'^rest/api/requests/$', reqListAPI.as_view()),
url(r'^rest/api/requests/(?P\d+)/$', reqDetailAPI.as_view()),
+ url(r'^submit_member$', submit_member),
#application
url(r'^application/$', application_index),
diff --git a/members/views.py b/members/views.py
index 851dc2e..1a8d4ec 100644
--- a/members/views.py
+++ b/members/views.py
@@ -1,15 +1,19 @@
-from django.shortcuts import render, get_object_or_404
+from django.shortcuts import render
from django.contrib.auth.decorators import permission_required
from django.views.decorators.http import require_http_methods
from django.views.decorators.csrf import ensure_csrf_cookie
-from django.http import HttpResponse, HttpResponseBadRequest
-from django.core.exceptions import ValidationError
-from members.models import Member, Request
-import json
+from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseRedirect
from django.core.mail import send_mail
-import requests
from django.conf import settings
+
+import json
+import requests
import logging
+
+
+from members.models import Member, Request
+from members.forms import MemberForm
+
'''Rest API'''
from members.serializers import MemberSerializer, MemberRequestSerializer
from rest_framework import generics
@@ -88,7 +92,8 @@ def member_list(request, *args, **kwargs):
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
def add_member(request, *args, **kwargs):
- return render(request, 'add_member.html', {})
+ form = MemberForm()
+ return render(request, 'add_member.html', {'form': form})
@ensure_csrf_cookie
@require_http_methods(["GET"])
@@ -96,6 +101,21 @@ def add_member(request, *args, **kwargs):
def add_many_members(request, *args, **kwargs):
return render(request, 'add_many_members.html', {})
+@ensure_csrf_cookie
+@require_http_methods(["POST"])
+@permission_required('members.change_member', login_url='/login')
+def submit_member(request, *args, **kwargs):
+ form = MemberForm(request.POST)
+ if form.is_valid():
+ print(request.POST)
+ return HttpResponse('jee')
+ else:
+ print(request.POST)
+ print(form.errors)
+ return HttpResponse('oh shit')
+
+ return HttpResponseRedirect('/members')
+
@ensure_csrf_cookie
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
@@ -172,24 +192,6 @@ def member(request, *args, **kwargs):
resp.status_code = 500
return resp
- # update model if request type was PUT
- if request.method == 'PUT':
- try:
- data = json.loads(request.body.decode("utf-8"))
- mem.update_from_dict(data)
- except ValueError:
- return HttpResponseBadRequest('{"error" : "Invalid parameters supplied"}')
-
- return HttpResponse(json.dumps(mem.get_dict()))
-
- if request.method == 'POST':
- try:
- data = json.loads(request.body.decode("utf-8"))
- mem = Member.create_from_dict(data)
- return HttpResponse(json.dumps(mem.get_dict()))
- except ValueError:
- return HttpResponseBadRequest('{"error" : "Invalid parameters supplied"}')
-
@ensure_csrf_cookie
@require_http_methods(["POST"])
diff --git a/requirements.txt b/requirements.txt
index 6b4f74d..a334cb6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -18,3 +18,4 @@ coverage==4.3.4
django-nose==1.4.4
uWSGI==2.0.14
psycopg2==2.7.1
+django-bootstrap3==8.2.3
diff --git a/sikweb/settings-docker-sample.py b/sikweb/settings-docker-sample.py
index 16d06cd..0ac2afa 100644
--- a/sikweb/settings-docker-sample.py
+++ b/sikweb/settings-docker-sample.py
@@ -46,6 +46,7 @@ INSTALLED_APPS = [
'infoscreen',
'rest_framework',
'django_nose',
+ 'bootstrap3',
]
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
diff --git a/sikweb/settings-sample.py b/sikweb/settings-sample.py
index 03c40cc..939a7b7 100644
--- a/sikweb/settings-sample.py
+++ b/sikweb/settings-sample.py
@@ -46,6 +46,7 @@ INSTALLED_APPS = [
'infoscreen',
'rest_framework',
'django_nose',
+ 'bootstrap3',
]
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'