Use Django forms in members, WIP
This commit is contained in:
@@ -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)
|
||||||
@@ -1,38 +1,45 @@
|
|||||||
{% extends "members_base.html" %}
|
{% extends "members_base.html" %}
|
||||||
|
|
||||||
|
{% load bootstrap3 %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div ng-controller="postController">
|
<div>
|
||||||
<h3> Lisää jäsen </h3>
|
<h3> Lisää jäsen </h3>
|
||||||
|
|
||||||
<div id="input_form">
|
<div id="input_form">
|
||||||
<form name="memberForm">
|
<form name="memberForm" action="/members/submit_member" method="post" class="form">{% csrf_token %}
|
||||||
|
<!--
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Etunimi: </label>
|
<label>Etunimi: </label>
|
||||||
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="member.first_name"></input>
|
<input name="first_name" required type="text" placeholder="Sähkö" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Sukunimi: </label>
|
<label>Sukunimi: </label>
|
||||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="member.last_name"></input>
|
<input name="last_name" required type="text" placeholder="Insinööri" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Sähköposti: </label>
|
<label>Sähköposti: </label>
|
||||||
<input id="emailField" required type="text" placeholder="sahko.insinoori@aalto.fi" class="form-control" ng-model="member.email"></input>
|
<input name="email" required type="text" placeholder="sahko.insinoori@aalto.fi" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>AYY jäsen: </label>
|
<label>AYY jäsen: </label>
|
||||||
<input type="checkbox" id="AYY" value="0" ng-model="member.AYY"></input>
|
<input type="checkbox" name="is_AYY" value="0">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>JAS-listaan: </label>
|
<label>JAS-listaan: </label>
|
||||||
<input type="checkbox" id="JAS" value="0" ng-model="member.jas"></input>
|
<input type="checkbox" name="is_JAS" value="0">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Asuinkunta: </label>
|
<label>Asuinkunta: </label>
|
||||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="member.POR"></input>
|
<input name="residence" required type="text" placeholder="Otaniemi" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<a href="/members/list">
|
-->
|
||||||
<button ng-click="memberForm.$valid && send()" type="submit" class="btn btn-success" id="sendmember">Tallenna</button>
|
{% bootstrap_form form %}
|
||||||
</a>
|
{% buttons %}
|
||||||
|
<button type="submit" class="btn btn-primary">
|
||||||
|
Tallenna
|
||||||
|
</button>
|
||||||
|
{% endbuttons %}
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ from members.views import new_member_request
|
|||||||
from members.views import member_requests
|
from members.views import member_requests
|
||||||
from members.views import export_csv as mem_csv_export
|
from members.views import export_csv as mem_csv_export
|
||||||
from members.views import tommy_blooper
|
from members.views import tommy_blooper
|
||||||
|
from members.views import submit_member
|
||||||
|
|
||||||
# members API
|
# members API
|
||||||
from members.views import MembersList as memsListAPI
|
from members.views import MembersList as memsListAPI
|
||||||
from members.views import MemberDetails as memDetailAPI
|
from members.views import MemberDetails as memDetailAPI
|
||||||
@@ -50,6 +52,7 @@ urlpatterns = [
|
|||||||
url(r'^rest/api/members/(?P<pk>\d+)/$', memDetailAPI.as_view()),
|
url(r'^rest/api/members/(?P<pk>\d+)/$', memDetailAPI.as_view()),
|
||||||
url(r'^rest/api/requests/$', reqListAPI.as_view()),
|
url(r'^rest/api/requests/$', reqListAPI.as_view()),
|
||||||
url(r'^rest/api/requests/(?P<pk>\d+)/$', reqDetailAPI.as_view()),
|
url(r'^rest/api/requests/(?P<pk>\d+)/$', reqDetailAPI.as_view()),
|
||||||
|
url(r'^submit_member$', submit_member),
|
||||||
|
|
||||||
#application
|
#application
|
||||||
url(r'^application/$', application_index),
|
url(r'^application/$', application_index),
|
||||||
|
|||||||
+27
-25
@@ -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.contrib.auth.decorators import permission_required
|
||||||
from django.views.decorators.http import require_http_methods
|
from django.views.decorators.http import require_http_methods
|
||||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||||
from django.http import HttpResponse, HttpResponseBadRequest
|
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseRedirect
|
||||||
from django.core.exceptions import ValidationError
|
|
||||||
from members.models import Member, Request
|
|
||||||
import json
|
|
||||||
from django.core.mail import send_mail
|
from django.core.mail import send_mail
|
||||||
import requests
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
|
import json
|
||||||
|
import requests
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
|
||||||
|
from members.models import Member, Request
|
||||||
|
from members.forms import MemberForm
|
||||||
|
|
||||||
'''Rest API'''
|
'''Rest API'''
|
||||||
from members.serializers import MemberSerializer, MemberRequestSerializer
|
from members.serializers import MemberSerializer, MemberRequestSerializer
|
||||||
from rest_framework import generics
|
from rest_framework import generics
|
||||||
@@ -88,7 +92,8 @@ def member_list(request, *args, **kwargs):
|
|||||||
@require_http_methods(["GET"])
|
@require_http_methods(["GET"])
|
||||||
@permission_required('members.change_member', login_url='/login')
|
@permission_required('members.change_member', login_url='/login')
|
||||||
def add_member(request, *args, **kwargs):
|
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
|
@ensure_csrf_cookie
|
||||||
@require_http_methods(["GET"])
|
@require_http_methods(["GET"])
|
||||||
@@ -96,6 +101,21 @@ def add_member(request, *args, **kwargs):
|
|||||||
def add_many_members(request, *args, **kwargs):
|
def add_many_members(request, *args, **kwargs):
|
||||||
return render(request, 'add_many_members.html', {})
|
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
|
@ensure_csrf_cookie
|
||||||
@require_http_methods(["GET"])
|
@require_http_methods(["GET"])
|
||||||
@permission_required('members.change_member', login_url='/login')
|
@permission_required('members.change_member', login_url='/login')
|
||||||
@@ -172,24 +192,6 @@ def member(request, *args, **kwargs):
|
|||||||
resp.status_code = 500
|
resp.status_code = 500
|
||||||
return resp
|
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
|
@ensure_csrf_cookie
|
||||||
@require_http_methods(["POST"])
|
@require_http_methods(["POST"])
|
||||||
|
|||||||
@@ -18,3 +18,4 @@ coverage==4.3.4
|
|||||||
django-nose==1.4.4
|
django-nose==1.4.4
|
||||||
uWSGI==2.0.14
|
uWSGI==2.0.14
|
||||||
psycopg2==2.7.1
|
psycopg2==2.7.1
|
||||||
|
django-bootstrap3==8.2.3
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ INSTALLED_APPS = [
|
|||||||
'infoscreen',
|
'infoscreen',
|
||||||
'rest_framework',
|
'rest_framework',
|
||||||
'django_nose',
|
'django_nose',
|
||||||
|
'bootstrap3',
|
||||||
]
|
]
|
||||||
|
|
||||||
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
|
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ INSTALLED_APPS = [
|
|||||||
'infoscreen',
|
'infoscreen',
|
||||||
'rest_framework',
|
'rest_framework',
|
||||||
'django_nose',
|
'django_nose',
|
||||||
|
'bootstrap3',
|
||||||
]
|
]
|
||||||
|
|
||||||
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
|
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
|
||||||
|
|||||||
Reference in New Issue
Block a user