Created member application form, reload page doesn't work

This commit is contained in:
HooVee
2016-09-14 21:05:46 +03:00
parent 4733cdaa2b
commit dcb4230ff5
6 changed files with 150 additions and 1 deletions
+3
View File
@@ -100,3 +100,6 @@ Pekka,Pöytä,pekka.p.pouta@mosh.pit,Tuska,1,0
{"status": "success", "errors": []}
// example response on failure (code will be 400)
{"status": "failure", "errors": ["failure adding item Pekka, P\u00f6yt\u00e42, pekka.p.pouta@mosh.pit, Tuska, Eip"]}
//member request from official page
POST /members/api/request
@@ -0,0 +1,43 @@
//app
app = angular.module('applicationApp', []);
//tokens
app.config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
}]);
//helpers
function notyfication(type,timeout){
return function(msg){
noty({
'text': msg,
'layout': "bottomRight",
'type': type,
'timeout': timeout
});
};
}
var notyError = notyfication('error',2500);
var notySuccess = notyfication('success',2500);
//controllers
app.controller("applicationController", function($scope, $http, $location) {
$scope.firstName = "";
$scope.lastName = "";
$scope.email = "";
//$scope.year = "1";
$scope.AYY = "";
$scope.JAS = "";
$scope.POR = "";
$scope.send = function() {
$http.post("/members/api/request", {"first_name":$scope.firstName, "last_name":$scope.lastName, "email":$scope.email, /*"year":$scope.year,*/ "AYY":$scope.AYY, "jas":$scope.JAS, "POR":$scope.POR}).then(function(data){
notySuccess("Hakemus lähetetty!");
$location.path("application/");
});
}
});
+65
View File
@@ -0,0 +1,65 @@
<!DOCTYPE html>
<html lang="en" ng-app="applicationApp" ng-controller="applicationController">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="uli uli">
<meta name="author" content="veedeeämkoo">
<title>Jäseneksi Aalto-yliopiston Sähköinsinöörikiltaan</title>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" rel = "stylesheet">
<script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.6/angular.js"></script>
<script src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-route.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
{%load staticfiles %}
<script src="/static/js/jquery.noty.packaged.js"></script>
<script src="/static/js/application_controllers.js"></script>
</head>
<body>
<h2>Killan jäseneksi liittyminen on helppoa ja hauskaa. Täytä vain alla oleva lomake.</h2>
<h2>Muista myös maksaa jäsenmaksusi!</h2>
<div id="input_form">
<form name="applicationForm">
<div class="form-group">
<label>Etunimi: </label>
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="firstName"></input>
</div>
<div class="form-group">
<label>Sukunimi: </label>
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="lastName"></input>
</div>
<div class="form-group">
<label>Sähköposti: </label>
<input id="emailField" required type="text" placeholder="sahko.insinoori@aalto.fi" class="form-control" ng-model="email"></input>
</div>
<div class="form-group">
<!--<label>Vuosikurssi: </label>
<select name="year" ng-model="year">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="n">N</option>
</select>
</div>-->
<div class="form-group">
<label>Olen AYY:n jäsen: </label>
<input type="checkbox" id="AYY" value="0" ng-model="AYY"></input>
</div>
<div class="form-group">
<label>Haluan saada viikottaisia jäsenmaileja: </label>
<input type="checkbox" id="JAS" value="0" ng-model="JAS"></input>
</div>
<div class="form-group">
<label>Asuinkunta: </label>
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="POR"></input>
</div>
<button ng-click="applicationForm.$valid && send()" type="submit" class="btn btn-success" id="sendmember">Tallenna</button>
</form>
</div>
</body>
+4
View File
@@ -13,6 +13,10 @@ import json
def index(request, *args, **kwargs):
return render(request, 'members_index.html',{})
@ensure_csrf_cookie
def applicationindex(request, *args, **kwargs):
return render(request, 'application_index.html',{})
@ensure_csrf_cookie
@require_http_methods(["GET"])
@permission_required('members.change_member', login_url='/login')
+4 -1
View File
@@ -32,7 +32,8 @@ from members.views import member_requests
#infoscreen
from infoscreen.views import index as infoindex
from infoscreen.views import abb_job_list
#application
from members.views import applicationindex
urlpatterns = [
# main
@@ -54,4 +55,6 @@ urlpatterns = [
#infoscreen
url(r'^infoscreen/$', infoindex),
url(r'^infoscreen/abbjobs$', abb_job_list),
#application
url(r'^application/$', applicationindex),
]
+31
View File
@@ -0,0 +1,31 @@
<nav class="navbar navbar-default sidebar" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-sidebar-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="bs-sidebar-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Kilta<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-home"></span></a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Yritykset <span class="caret"></span><span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-user"></span></a>
<ul class="dropdown-menu forAnimate" role="menu">
<li><a href="{{URL::to('createusuario')}}">Työpaikat</a></li>
<li><a href="#">Yritysdadaa</a></li>
<li><a href="#">Lisää yritysdadaa</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">Informes</a></li>
</ul>
</li>
<li ><a href="#">Tapahtumakalenteri<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-th-list"></span></a></li>
<li ><a href="#">International<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-tags"></span></a></li>
</ul>
</div>
</div>
</nav>