Make application list work in a basic sense

This commit is contained in:
Jan Tuomi
2017-05-11 23:25:59 +03:00
parent 8707cda7bc
commit c5443d25b4
3 changed files with 55 additions and 50 deletions
+20 -14
View File
@@ -1,40 +1,46 @@
{% extends "members_base.html" %}
{% load i18n %}
{% block content %}
<div ng-controller="applController">
<h3> Jäsenhakemukset </h3>
<div>
<h3>{% trans "Member applications" %}</h3>
<div>
<div class="panel panel-primary" ng-repeat="x in applications | orderBy: 'submitted'">
<div class="panel-heading">{$ x.member.first_name $} {$ x.member.last_name$}</div>
{% for application in applications %}
<div class="panel panel-primary">
<div class="panel-heading">{{ application.first_name }} {{ application.last_name }}</div>
<div class="panel-body">
<div class="row">
<div class="col-sm-4">Sähköposti: {$ x.member.email $}</div>
<div class="col-sm-4">Sähköposti: {{ application.email }}</div>
</div>
<div class="row">
<div class="col-sm-4">AYY-jäsen: {$ x.member.AYY $}</div>
<div class="col-sm-4">AYY-jäsen: {{ application.AYY }}</div>
</div>
<div class="row">
<div class="col-sm-4">JAS-listaan: {$ x.member.jas $}</div>
<div class="col-sm-4">JAS-listaan: {{ application.jas }}</div>
</div>
<div class="row">
<div class="col-sm-4">Asuinpaikka: {$ x.member.POR $}</div>
<div class="col-sm-4">Asuinpaikka: {{ application.POR }}</div>
</div>
<div class="row">
<div class="col-sm-4">Lisätty: {$ x.member.created $}</div>
<div class="col-sm-4">Lisätty: {{ application.created }}</div>
</div>
<div class="row">
<div class="col-sm-4">
<input type="button" value="Hyväksy" class="btn btn-success" confirmed-click="sendAppl(x.id)" ng-confirm-click="Oletko varma, että haluat hyväksyä?"/>
<input type="button" value="Hylkää" class="btn btn-danger" confirmed-click="deleteAppl(x.id)" ng-confirm-click="Oletko varma, että haluat hylätä hakemuksen?"/>
<a href="/members/edit_application/{$x.member.id$}"<input type="button" value="Edit" class="btn btn-info">Muokkaa</input></a>
<input type="button" value="Hyväksy" class="btn btn-success">
<input type="button" value="Hylkää" class="btn btn-danger"/>
<a href="/members/edit_application/{{ application.id }}"><input type="button" value="Edit" class="btn btn-info"></a>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
<div ng-show="!applications.length">
<h3>Ei jäsenhakemuksia :(</h3>
{% if application_count == 0 %}
<div>
<h4>Ei jäsenhakemuksia :(</h4>
</div>
{% endif %}
</div>
{% endblock content %}
+25 -34
View File
@@ -6,24 +6,11 @@ from members.views import member_list
from members.views import add_member
from members.views import add_many_members
from members.views import edit_member
from members.views import members as mems
from members.views import member as mem
from members.views import handle_mem_request
from members.views import csv_import as mem_csv_import
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
from members.views import update_member
from members.views import delete_member_confirm
from members.views import delete_member
# members API
from members.views import MembersList as memsListAPI
from members.views import MemberDetails as memDetailAPI
from members.views import MemberRequestList as reqListAPI
from members.views import MemberRequestDetail as reqDetailAPI
#application
from members.views import application_index
from members.views import list_applications
@@ -34,36 +21,40 @@ favicon_view = RedirectView.as_view(url='static/img/favicon.ico', permanent=True
urlpatterns = [
# members
# landing page
url(r'^$', member_list),
url(r'^list$', member_list),
url(r'^add$', add_member),
url(r'^add_many$', add_many_members),
url(r'^edit/(?P<index>\d+)$', edit_member),
url(r'^applications$', list_applications),
url(r'^edit_application/(?P<index>\d+)$', edit_application),
url(r'^api/members$', mems),
url(r'^api/member/(?P<idx>\d+)$', mem),
url(r'^api/member/$', mem),
url(r'^api/csvimport$', mem_csv_import),
url(r'^api/requests$', member_requests),
url(r'^api/request$', new_member_request),
url(r'^api/request/(?P<idx>\d+)$', handle_mem_request),
url(r'^api/getCSV$', mem_csv_export),
url(r'^tommy$', tommy_blooper),
url(r'^rest/api/members/$', memsListAPI.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/(?P<pk>\d+)/$', reqDetailAPI.as_view()),
# add member form view
url(r'^add$', add_member),
# add many members view
url(r'^add_many$', add_many_members),
# edit member information view
url(r'^edit/(?P<index>\d+)$', edit_member),
# delete confirmation view
url(r'^delete_member_confirm/(?P<index>\d+)$', delete_member_confirm),
# list all member applications
url(r'^applications$', list_applications),
# edit member application
url(r'^edit_application/(?P<index>\d+)$', edit_application),
# post request targets
url(r'^submit_member$', submit_member),
url(r'^update_member$', update_member),
url(r'^delete_member$', delete_member),
url(r'^delete_member_confirm/(?P<index>\d+)$', delete_member_confirm),
#application
# the actual member application form
url(r'^application/$', application_index),
# success page for the application
url(r'^application/success$', application_success_index),
# favourite icon
url(r'^favicon\.ico$', favicon_view),
]
+10 -2
View File
@@ -132,11 +132,18 @@ def delete_member(request, *args, **kwargs):
resp.status_code = 500
return resp
@ensure_csrf_cookie
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
def list_applications(request, *args, **kwargs):
return render(request, 'list_applications.html', {})
applications = Request.objects.all()
application_count = len(applications)
context = {
'applications': applications,
'application_count': application_count
}
return render(request, 'list_applications.html', context)
@ensure_csrf_cookie
@@ -151,11 +158,12 @@ def edit_member(request, *args, **kwargs):
form = MemberForm(instance=member)
return render(request, 'edit_member.html', {'member_id': i, 'form': form})
@ensure_csrf_cookie
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
def edit_application(request, *args, **kwargs):
i = kwargs.pop('index', None);
i = kwargs.pop('index', None)
if i is None:
return HttpResponse(status=500, error="{'error': 'No member id specified'}")
else: