Move templates in members app to templates dir
This is kind of a huge, monolithic commit. Templates were being served as static files, so Django template tags could not be used for, e.g. internationalization. Now all html files are served as Django templates.
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
from django.contrib import admin
|
||||
from members.models import Member, MemberRequest
|
||||
|
||||
# Register your models here.
|
||||
admin.site.register(Member)
|
||||
admin.site.register(MemberRequest)
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<h3> Jäsenhakemukset </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>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">Sähköposti: {{ x.member.email }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">AYY-jäsen: {{ x.member.AYY }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">JAS-listaan: {{ x.member.jas }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">Asuinpaikka: {{ x.member.POR }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">Lisätty: {{ x.member.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="#/applications/edit/{{x.member.id}}"<input type="button" value="Edit" class="btn btn-info">Muokkaa</input></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,66 +0,0 @@
|
||||
<link rel="stylesheet" href="/static/css/jasenlista.css">
|
||||
<div class="row">
|
||||
</div>
|
||||
<div class="row content-area">
|
||||
<div class="form-inline col-md-12 filters first-filter">
|
||||
<div class="form-group">
|
||||
<label for="addedBeforeDatePicker"><h4>Lisätty</h4></label>
|
||||
<md-datepicker class="filter-field" id="addedAfterDatePicker" ng-model="addedAfterDatePicker" md-placeholder="Lisätty jälkeen"></md-datepicker>
|
||||
<md-datepicker class="filter-field" id="addedBeforeDatePicker" ng-model="addedBeforeDatePicker" md-placeholder="Lisätty ennen"></md-datepicker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inline col-md-12 filters">
|
||||
<div class="form-group">
|
||||
<label for="paidBeforeDatePicker"><h4>Maksettu</h4></label>
|
||||
<md-datepicker class="filter-field" id="paidAfterDatePicker" ng-model="paidAfterDatePicker" md-placeholder="Maksettu jälkeen"></md-datepicker>
|
||||
<md-datepicker class="filter-field" id="paidBeforeDatePicker" ng-model="paidBeforeDatePicker" md-placeholder="Maksettu ennen"></md-datepicker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inline col-md-12 last-filter">
|
||||
<div class="form-group filters">
|
||||
<input class="filter-field form-control" type="text" id="searchFilter" placeholder="Haku" ng-keypress="pressKeyOnSearch($event)" ng-model="searchFilter"></input>
|
||||
<input type="button" value="Suodata" class="filter-field btn btn-success" ng-click="doFilter()" />
|
||||
<input type="button" value="Nollaa" class="filter-field btn btn-warning" ng-click="clearFilter()" />
|
||||
</div>
|
||||
<div class="content-area-title form-group">
|
||||
<h3 class="inline-title">Jäsenlista (jäseniä: {{members.length}})</h3>
|
||||
<input type="button" value="Lataa CSV" id="download-csv" class="btn btn-info" ng-click="loadCSV()"/>
|
||||
</div>
|
||||
</div>
|
||||
<table id="choose-address-table" class="table table-striped">
|
||||
<thead>
|
||||
<tr class="ui-widget-header">
|
||||
<th>Sukunimi</th>
|
||||
<th>Etunimi</th>
|
||||
<th>Sähköposti</th>
|
||||
<th>AYY-jäsen</th>
|
||||
<th>JAS-listalla</th>
|
||||
<th>Asuinpaikka</th>
|
||||
<th>Lisätty</th>
|
||||
<th>Maksanut</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="x in shown_members | orderBy: 'last_name'">
|
||||
<td>{{ x.last_name }}</td>
|
||||
<td>{{ x.first_name }}</td>
|
||||
<td>{{ x.email }}</td>
|
||||
<td>{{ x.AYY }}</td>
|
||||
<td>{{ x.jas }}</td>
|
||||
<td>{{ x.POR }}</td>
|
||||
<td>{{ x.created }}</td>
|
||||
<td>{{ x.paid }}</td>
|
||||
<td class="table-button-column">
|
||||
<input type="button" value="Päivitä maksu" class="table-button btn btn-success" ng-click="updatePayment(x.id)" />
|
||||
<a href="#/edit/{{x.id}}"<input type="button" value="Edit" class="table-button btn btn-info">Muokkaa</input></a>
|
||||
<input type="button" value="Poista" class="table-button btn btn-danger" confirmed-click="deleteMember(x.id)" ng-confirm-click="Are you sure?"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row" id="tommy">
|
||||
<div class="col-sm-4">
|
||||
<a href="#/tommy">Tommy</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,31 +0,0 @@
|
||||
<h3> Lisää jäsen </h3>
|
||||
|
||||
<div id="input_form">
|
||||
<form name="memberForm">
|
||||
<div class="form-group">
|
||||
<label>Etunimi: </label>
|
||||
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="member.first_name"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Sukunimi: </label>
|
||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="member.last_name"></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="member.email"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>AYY jäsen: </label>
|
||||
<input type="checkbox" id="AYY" value="0" ng-model="member.AYY"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>JAS-listaan: </label>
|
||||
<input type="checkbox" id="JAS" value="0" ng-model="member.jas"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Asuinkunta: </label>
|
||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="member.POR"></input>
|
||||
</div>
|
||||
<button ng-click="memberForm.$valid && send()" type="submit" class="btn btn-success" id="sendmember">Tallenna</button>
|
||||
</form>
|
||||
</div>
|
||||
@@ -1,24 +0,0 @@
|
||||
<div class="container" style="align:middle;">
|
||||
<div class="instructions">
|
||||
<h3> Lisää useampi jäsen </h3>
|
||||
<h5>
|
||||
Syötä jäsentiedot pilkuilla erotettuina formaatissa <b>Etunimi, Sukunimi, Sähköposti, Asuinkunta, AYY-jäsen(0 tai 1), JAS-listaan(0 tai 1)</b>
|
||||
<br>
|
||||
<br>
|
||||
Erota jäsenet rivinvaihdoilla toisistaan.
|
||||
</h5>
|
||||
<!--<img src="/static/img/members_example.png" alt="exampleImg" style="max-width:100%; height:auto; margin-bottom:10px; opacity:0.7;">-->
|
||||
</div>
|
||||
<form name="memberTextForm">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<textarea ng-model="memberData" rows="20" cols="120" placeholder="Salli, Vahvonen, salli.vahvonen@notmail.dom, Kerava, 0, 0" style="border:solid 3px #c9c9c9; transition:box-shadow 0.3s, border 0.3s; align:middle;"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<button ng-click="sendCSV()" type="submit" class="btn btn-success" id="sendMembers">Lähetä</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -1,32 +0,0 @@
|
||||
<h1> Muokkaa hakemuksen jäsentietoja </h1>
|
||||
|
||||
<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="application.member.first_name"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Sukunimi: </label>
|
||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="application.member.last_name"></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="application.member.email"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>AYY jäsen: </label>
|
||||
<input type="checkbox" id="AYY" ng-model="application.member.AYY"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>JAS-listaan: </label>
|
||||
<input type="checkbox" id="jas" ng-model="application.member.jas"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Asuinkunta: </label>
|
||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="application.member.POR"></input>
|
||||
</div>
|
||||
<button class="btn btn-success" ng-click="applicationForm.$valid && sendappl()" type="submit" id="sendmember">Tallenna</button>
|
||||
<button class="btn btn-warning" ng-click="cancelappl()" type="submit" id="sendmember">Peruuta</button>
|
||||
</form>
|
||||
</div>
|
||||
@@ -1,32 +0,0 @@
|
||||
<h1> Muokkaa jäsentietoja </h1>
|
||||
|
||||
<div id="input_form">
|
||||
<form name="memberForm">
|
||||
<div class="form-group">
|
||||
<label>Etunimi: </label>
|
||||
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="member.first_name"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Sukunimi: </label>
|
||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="member.last_name"></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="member.email"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>AYY jäsen: </label>
|
||||
<input type="checkbox" id="AYY" ng-model="member.AYY"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>JAS-listaan: </label>
|
||||
<input type="checkbox" id="jas" ng-model="member.jas"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Asuinkunta: </label>
|
||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="member.POR"></input>
|
||||
</div>
|
||||
<button class="btn btn-success" ng-click="memberForm.$valid && send()" type="submit" id="sendmember">Tallenna</button>
|
||||
<button class="btn btn-warning" ng-click="cancel()" type="submit" id="sendmember">Peruuta</button>
|
||||
</form>
|
||||
</div>
|
||||
@@ -1,6 +1,11 @@
|
||||
var app = angular.module('memberApp', ['ngRoute','ngMaterial','ngMessages']);
|
||||
|
||||
app.config(['$httpProvider', function ($httpProvider) {
|
||||
app.config(['$httpProvider', '$locationProvider', function ($httpProvider, $locationProvider) {
|
||||
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
|
||||
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
|
||||
}]);
|
||||
}]);
|
||||
|
||||
app.config(function($interpolateProvider) {
|
||||
$interpolateProvider.startSymbol('{$');
|
||||
$interpolateProvider.endSymbol('$}');
|
||||
});
|
||||
|
||||
@@ -19,21 +19,22 @@ function notyfication(type, timeout) {
|
||||
var notyError = notyfication('error', 2500);
|
||||
var notySuccess = notyfication('success', 2500);
|
||||
|
||||
function memberDataEditor(returnpath) {
|
||||
return function($scope, $http, $route, $routeParams, $window, $location) {
|
||||
$scope.member = {"id": $routeParams.id};
|
||||
$http.get("/members/api/member/" + $scope.member.id).then(function(response) {
|
||||
function memberDataEditor(returnPath) {
|
||||
return function($scope, $http, $window, $location) {
|
||||
var id = memberId;
|
||||
console.log("id: " + id);
|
||||
$http.get("/members/api/member/" + id).then(function(response) {
|
||||
$scope.member = response.data;
|
||||
});
|
||||
|
||||
$scope.send = function() {
|
||||
$http.put("/members/api/member/" + $scope.member.id, $scope.member).then(function(response){
|
||||
$http.put("/members/api/member/" + id, $scope.member).then(function(response){
|
||||
notySuccess("Jäsentiedot tallennettu");
|
||||
$location.path(returnpath);
|
||||
$window.location = returnPath;
|
||||
});
|
||||
}
|
||||
$scope.cancel = function() { //user canceled. return to list
|
||||
$location.path(returnpath);
|
||||
$window.location = returnPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,7 +48,7 @@ app.directive('ngConfirmClick', [ function() { return {
|
||||
buttons: [ {
|
||||
addClass: 'btn btn-danger', text: 'Kyllä', onClick: function($noty) {
|
||||
$noty.close();
|
||||
scope.$eval(clickAction)
|
||||
scope.$eval(clickAction);
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -214,7 +215,6 @@ app.controller("postController", function($scope, $http, $location) {
|
||||
$scope.send = function() {
|
||||
$http.post("/members/api/member/", $scope.member).then(function(response){
|
||||
notySuccess("Jäsen lisätty!");
|
||||
$location.path("/list");
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -258,8 +258,8 @@ app.controller("applController", function($scope, $http){
|
||||
};
|
||||
});
|
||||
|
||||
app.controller("editController", memberDataEditor("/list"));
|
||||
app.controller("applEditController", memberDataEditor("/applications"));
|
||||
app.controller("editController", memberDataEditor("/members/list"));
|
||||
app.controller("applEditController", memberDataEditor("/members/applications"));
|
||||
|
||||
app.controller("addManyController", function($scope, $http, $window) {
|
||||
$scope.memberData = '';
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
app.config(['$routeProvider', function($routeProvider){
|
||||
$routeProvider
|
||||
.when('/',{
|
||||
templateUrl:"/static/html/jasenlista.html",
|
||||
controller:'getController',
|
||||
})
|
||||
.when('/list/',{
|
||||
templateUrl:"/static/html/jasenlista.html",
|
||||
controller:'getController',
|
||||
})
|
||||
.when('/add/',{
|
||||
templateUrl:"/static/html/lisaa_jasen.html",
|
||||
controller:'postController',
|
||||
})
|
||||
.when('/edit/:id',{
|
||||
templateUrl:"/static/html/muokkaa_jasenta.html",
|
||||
controller:'editController',
|
||||
})
|
||||
.when('/applications/',{
|
||||
templateUrl:"/static/html/jasenhakemukset.html",
|
||||
controller:'applController',
|
||||
})
|
||||
.when('/applications/edit/:id',{
|
||||
templateUrl:"/static/html/muokkaa_jasenta.html",
|
||||
controller:'applEditController',
|
||||
})
|
||||
.when('/addmany/',{
|
||||
templateUrl:"/static/html/lisaa_jasenia.html",
|
||||
controller:'addManyController',
|
||||
})
|
||||
.when('/tommy/',{
|
||||
templateUrl:"/static/html/tommy.html"
|
||||
})
|
||||
.otherwise({
|
||||
'redirectTo':"/"
|
||||
})
|
||||
}]);
|
||||
@@ -0,0 +1,28 @@
|
||||
{% extends "members_base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container" style="align:middle;" ng-controller="addManyController">
|
||||
<div class="instructions">
|
||||
<h3> Lisää useampi jäsen </h3>
|
||||
<h5>
|
||||
Syötä jäsentiedot pilkuilla erotettuina formaatissa <b>Etunimi, Sukunimi, Sähköposti, Asuinkunta, AYY-jäsen(0 tai 1), JAS-listaan(0 tai 1)</b>
|
||||
<br>
|
||||
<br>
|
||||
Erota jäsenet rivinvaihdoilla toisistaan.
|
||||
</h5>
|
||||
<!--<img src="/static/img/members_example.png" alt="exampleImg" style="max-width:100%; height:auto; margin-bottom:10px; opacity:0.7;">-->
|
||||
</div>
|
||||
<form name="memberTextForm">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<textarea ng-model="memberData" rows="20" cols="120" placeholder="Salli, Vahvonen, salli.vahvonen@notmail.dom, Kerava, 0, 0" style="border:solid 3px #c9c9c9; transition:box-shadow 0.3s, border 0.3s; align:middle;"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<button ng-click="sendCSV()" type="submit" class="btn btn-success" id="sendMembers">Lähetä</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,39 @@
|
||||
{% extends "members_base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div ng-controller="postController">
|
||||
<h3> Lisää jäsen </h3>
|
||||
|
||||
<div id="input_form">
|
||||
<form name="memberForm">
|
||||
<div class="form-group">
|
||||
<label>Etunimi: </label>
|
||||
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="member.first_name"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Sukunimi: </label>
|
||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="member.last_name"></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="member.email"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>AYY jäsen: </label>
|
||||
<input type="checkbox" id="AYY" value="0" ng-model="member.AYY"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>JAS-listaan: </label>
|
||||
<input type="checkbox" id="JAS" value="0" ng-model="member.jas"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Asuinkunta: </label>
|
||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="member.POR"></input>
|
||||
</div>
|
||||
<a href="/members/list">
|
||||
<button ng-click="memberForm.$valid && send()" type="submit" class="btn btn-success" id="sendmember">Tallenna</button>
|
||||
</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,43 @@
|
||||
{% load staticfiles %}
|
||||
{% load i18n %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" ng-app="memberApp">
|
||||
<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äsenhakemus</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>
|
||||
|
||||
<!-- DatePicker -->
|
||||
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-messages.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-animate.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-aria.min.js"></script>
|
||||
|
||||
<!-- reCaptcha -->
|
||||
<script src="/static/js/angular-recaptcha.js"></script>
|
||||
<script src="https://www.google.com/recaptcha/api.js?onload=vcRecaptchaApiLoaded&render=explicit"></script>
|
||||
|
||||
<script src="/static/js/jquery.noty.packaged.js"></script>
|
||||
<script src="/static/js/appconfig.js"></script>
|
||||
<script src="/static/js/members_controllers.js"></script>
|
||||
<script src="/static/js/moment.js"></script>
|
||||
<link href="/static/css/simple-sidebar.css" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
{% block content %}
|
||||
{% endblock content %}
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,88 +1,67 @@
|
||||
<!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">
|
||||
{% extends "application_base.html" %}
|
||||
{% load static %}
|
||||
|
||||
<!-- 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>
|
||||
<link rel="stylesheet" href="/static/css/application.css">
|
||||
<!-- reCaptcha -->
|
||||
<script src="https://www.google.com/recaptcha/api.js?onload=vcRecaptchaApiLoaded&render=explicit" async defer></script>
|
||||
<script src="/static/js/angular-recaptcha.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- include finnish form and then button for changing the language -->
|
||||
<div ng-include="">
|
||||
{% block content %}
|
||||
<link rel="stylesheet" href="{% static "css/application.css" %}">
|
||||
|
||||
</div>
|
||||
<title>Jäseneksi Aalto-yliopiston Sähköinsinöörikiltaan</title>
|
||||
<h3>Killan jäseneksi liittyminen on helppoa ja hauskaa!</h3>
|
||||
<h3>Täytä vain alla oleva lomake</h3>
|
||||
<h4>Muista myös maksaa jäsenmaksusi!</h4>
|
||||
<div id="input_form">
|
||||
<form name="applicationForm">
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label for="firstNameField">Etunimi: </label>
|
||||
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="member.first_name"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label for="lastNameField">Sukunimi: </label>
|
||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="member.last_name"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label for="emailField">Sähköposti: </label>
|
||||
<input id="emailField" required type="text" placeholder="sahko.insinoori@aalto.fi" class="form-control" ng-model="member.email"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label>Olen AYY:n jäsen: </label>
|
||||
<input type="checkbox" autocomplete="off" id="AYY" value="0" ng-model="member.AYY">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label>Haluan saada viikottaisia jäsenmaileja: </label>
|
||||
<input type="checkbox" class="custom-control-input" autocomplete="off" id="JAS" value="0" ng-model="member.jas">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label>Asuinkunta: </label>
|
||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="member.POR"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div
|
||||
id="captcha"
|
||||
vc-recaptcha
|
||||
theme="'light'"
|
||||
key="'6LevHAcUAAAAAA45B7c-7qja-2aSwHztr9xb4K2Z'"
|
||||
on-create="setWidgetId(widgetId)"
|
||||
on-success="setResponse(response)"
|
||||
on-expire="cbExpiration()"
|
||||
></div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<button ng-click="applicationForm.$valid && send()" type="submit" class="btn btn-success" id="sendmember">Liity</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
<div id="input_form">
|
||||
<form name="applicationForm">
|
||||
<div class="col-xs-12">
|
||||
<h3>Killan jäseneksi liittyminen on helppoa ja hauskaa!</h3>
|
||||
<h3>Täytä vain alla oleva lomake</h3>
|
||||
<h4>Muista myös maksaa jäsenmaksusi!</h4>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label for="firstNameField">Etunimi: </label>
|
||||
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="member.first_name"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label for="lastNameField">Sukunimi: </label>
|
||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="member.last_name"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label for="emailField">Sähköposti: </label>
|
||||
<input id="emailField" required type="text" placeholder="sahko.insinoori@aalto.fi" class="form-control" ng-model="member.email"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label>Olen AYY:n jäsen: </label>
|
||||
<input type="checkbox" autocomplete="off" id="AYY" value="0" ng-model="member.AYY">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label>Haluan saada viikottaisia jäsenmaileja: </label>
|
||||
<input type="checkbox" class="custom-control-input" autocomplete="off" id="JAS" value="0" ng-model="member.jas">
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div class="form-group">
|
||||
<label>Asuinkunta: </label>
|
||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="member.POR"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<div
|
||||
id="captcha"
|
||||
vc-recaptcha
|
||||
theme="'light'"
|
||||
key="'6LevHAcUAAAAAA45B7c-7qja-2aSwHztr9xb4K2Z'"
|
||||
on-create="setWidgetId(widgetId)"
|
||||
on-success="setResponse(response)"
|
||||
on-expire="cbExpiration()"
|
||||
></div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1">
|
||||
<button ng-click="applicationForm.$valid && send()" type="submit" class="btn btn-success" id="sendmember">Liity</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
||||
@@ -1,15 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<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>Hienoa! Jäsenhakemuksesi on nyt lähetetty.</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hienoa! Jäsenhakemuksesi on nyt lähetetty.</h1>
|
||||
<a href="http://sahkoinsinoorikilta.fi">Takaisin Sähköinsinöörikillan web-sivuille</a>
|
||||
</body>
|
||||
</html>
|
||||
{% extends "application_base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Hienoa! Jäsenhakemuksesi on nyt lähetetty.</h1>
|
||||
<a href="http://sahkoinsinoorikilta.fi">Takaisin Sähköinsinöörikillan web-sivuille</a>
|
||||
{% endblock content %}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
{% extends "members_base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<script>
|
||||
var memberId = {{ member_id }};
|
||||
</script>
|
||||
<div ng-controller="applEditController">
|
||||
<h1> Muokkaa hakemuksen jäsentietoja </h1>
|
||||
|
||||
<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="member.first_name"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Sukunimi: </label>
|
||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="member.last_name"></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="member.email"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>AYY jäsen: </label>
|
||||
<input type="checkbox" id="AYY" ng-model="member.AYY"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>JAS-listaan: </label>
|
||||
<input type="checkbox" id="jas" ng-model="member.jas"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Asuinkunta: </label>
|
||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="member.POR"></input>
|
||||
</div>
|
||||
<button class="btn btn-success" ng-click="applicationForm.$valid && sendappl()" type="submit" id="sendmember">Tallenna</button>
|
||||
<button class="btn btn-warning" ng-click="cancelappl()" type="submit" id="sendmember">Peruuta</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,41 @@
|
||||
{% extends "members_base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<script>
|
||||
var memberId = {{ member_id }};
|
||||
</script>
|
||||
<div ng-controller="editController">
|
||||
<h1> Muokkaa jäsentietoja </h1>
|
||||
|
||||
<div id="input_form">
|
||||
<form name="memberForm">
|
||||
<div class="form-group">
|
||||
<label>Etunimi: </label>
|
||||
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="member.first_name"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Sukunimi: </label>
|
||||
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="member.last_name"></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="member.email"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>AYY jäsen: </label>
|
||||
<input type="checkbox" id="AYY" ng-model="member.AYY"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>JAS-listaan: </label>
|
||||
<input type="checkbox" id="jas" ng-model="member.jas"></input>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Asuinkunta: </label>
|
||||
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="member.POR"></input>
|
||||
</div>
|
||||
<button class="btn btn-success" ng-click="memberForm.$valid && send()" type="submit" id="sendmember">Tallenna</button>
|
||||
<button class="btn btn-warning" ng-click="cancel()" type="submit" id="sendmember">Peruuta</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,40 @@
|
||||
{% extends "members_base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div ng-controller="applController">
|
||||
<h3> Jäsenhakemukset </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>
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">Sähköposti: {$ x.member.email $}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">AYY-jäsen: {$ x.member.AYY $}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">JAS-listaan: {$ x.member.jas $}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">Asuinpaikka: {$ x.member.POR $}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">Lisätty: {$ x.member.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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="!applications.length">
|
||||
<h3>Ei jäsenhakemuksia :(</h3>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,73 @@
|
||||
{% extends "members_base.html" %}
|
||||
|
||||
{% load static %}
|
||||
{% block content %}
|
||||
<link rel="stylesheet" href="{% static "css/jasenlista.css" %}">
|
||||
<div ng-controller="getController">
|
||||
<div class="row">
|
||||
</div>
|
||||
<div class="row content-area">
|
||||
<div class="form-inline col-md-12 first-filter">
|
||||
<div class="form-group filters">
|
||||
<label for="addedBeforeDatePicker"><h4>Lisätty</h4></label>
|
||||
<md-datepicker class="filter-field" id="addedAfterDatePicker" ng-model="addedAfterDatePicker" md-placeholder="Lisätty jälkeen"></md-datepicker>
|
||||
<md-datepicker class="filter-field" id="addedBeforeDatePicker" ng-model="addedBeforeDatePicker" md-placeholder="Lisätty ennen"></md-datepicker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inline col-md-12">
|
||||
<div class="form-group filters">
|
||||
<label for="paidBeforeDatePicker"><h4>Maksettu</h4></label>
|
||||
<md-datepicker class="filter-field" id="paidAfterDatePicker" ng-model="paidAfterDatePicker" md-placeholder="Maksettu jälkeen"></md-datepicker>
|
||||
<md-datepicker class="filter-field" id="paidBeforeDatePicker" ng-model="paidBeforeDatePicker" md-placeholder="Maksettu ennen"></md-datepicker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-inline col-md-12 last-filter">
|
||||
<div class="form-group filters">
|
||||
<input class="filter-field form-control" type="text" id="searchFilter" placeholder="Haku" ng-keypress="pressKeyOnSearch($event)" ng-model="searchFilter"></input>
|
||||
<input type="button" value="Suodata" class="filter-field btn btn-success" ng-click="doFilter()" />
|
||||
<input type="button" value="Nollaa" class="filter-field btn btn-warning" ng-click="clearFilter()" />
|
||||
</div>
|
||||
<div class="content-area-title form-group">
|
||||
<h3 class="inline-title">Jäsenlista (jäseniä: {$ members.length $})</h3>
|
||||
<input type="button" value="Lataa CSV" id="download-csv" class="btn btn-info" ng-click="loadCSV()"/>
|
||||
</div>
|
||||
</div>
|
||||
<table id="choose-address-table" class="table table-striped">
|
||||
<thead>
|
||||
<tr class="ui-widget-header">
|
||||
<th>Sukunimi</th>
|
||||
<th>Etunimi</th>
|
||||
<th>Sähköposti</th>
|
||||
<th>AYY-jäsen</th>
|
||||
<th>JAS-listalla</th>
|
||||
<th>Asuinpaikka</th>
|
||||
<th>Lisätty</th>
|
||||
<th>Maksanut</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="x in shown_members | orderBy: 'last_name'">
|
||||
<td>{$ x.last_name $}</td>
|
||||
<td>{$ x.first_name $}</td>
|
||||
<td>{$ x.email $}</td>
|
||||
<td>{$ x.AYY $}</td>
|
||||
<td>{$ x.jas $}</td>
|
||||
<td>{$ x.POR $}</td>
|
||||
<td>{$ x.created $}</td>
|
||||
<td>{$ x.paid $}</td>
|
||||
<td class="table-button-column">
|
||||
<input type="button" value="Päivitä maksu" class="table-button btn btn-success" ng-click="updatePayment(x.id)" />
|
||||
<a href="/members/edit/{$ x.id $}"<input type="button" value="Edit" class="table-button btn btn-info">Muokkaa</input></a>
|
||||
<input type="button" value="Poista" class="table-button btn btn-danger" confirmed-click="deleteMember(x.id)" ng-confirm-click="Are you sure?"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="row" id="tommy">
|
||||
<div class="col-sm-4">
|
||||
<a href="/members/tommy">Tommy</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,77 @@
|
||||
{% load staticfiles %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" ng-app="memberApp">
|
||||
<head>
|
||||
<base href="/">
|
||||
<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äsenrekisteri</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>
|
||||
|
||||
<!-- Angular -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.6/angular.js"></script>
|
||||
|
||||
<!-- Angular routing -->
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-route.js"></script>
|
||||
|
||||
<!-- Underscore.js -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
|
||||
|
||||
<!-- DatePicker -->
|
||||
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-messages.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-animate.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-aria.min.js"></script>
|
||||
|
||||
<!-- reCaptcha -->
|
||||
<script src="/static/js/angular-recaptcha.js"></script>
|
||||
<script src="https://www.google.com/recaptcha/api.js?onload=vcRecaptchaApiLoaded&render=explicit" async defer></script>
|
||||
|
||||
<script src="/static/js/jquery.noty.packaged.js"></script>
|
||||
<script src="/static/js/appconfig.js"></script>
|
||||
|
||||
<script src="/static/js/members_controllers.js"></script>
|
||||
<script src="/static/js/moment.js"></script>
|
||||
<link href="/static/css/simple-sidebar.css" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div id="sidebar-wrapper">
|
||||
<ul class="sidebar-nav">
|
||||
<li><a href="/members/list">Listaa jäsenet</a></li>
|
||||
<li><a href="/members/add">Lisää jäsen</a></li>
|
||||
<li><a href="/members/add_many">Lisää jäseniä</a></li>
|
||||
<li><a href="/members/applications">Jäsenhakemukset</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /#sidebar-wrapper -->
|
||||
|
||||
<!-- Page Content -->
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div id="header" class="row">
|
||||
<div class="col-xs-11 col-sm-11 col-lg-11">
|
||||
<h1 style="text-align:center; margin-top:10px; margin-bottom: 10px;">Aalto-yliopiston Sähköinsinöörikilta RY:n jäsenrekisteri</h1>
|
||||
</div>
|
||||
<div class="col-xs-1 col-sm-1 col-lg-1">
|
||||
<form action="/logout" method="post"> {% csrf_token %}
|
||||
<input type="Submit" value="Logout" name="Logout" class="btn btn-danger" style="margin-top:12px;"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% block content %}
|
||||
{% endblock content %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,66 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" ng-app="memberApp">
|
||||
<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">
|
||||
{% extends "members_base.html" %}
|
||||
|
||||
<title>Jäsenrekisteri</title>
|
||||
{% block content %}
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- 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>
|
||||
<!-- Sidebar -->
|
||||
<div id="sidebar-wrapper">
|
||||
<ul class="sidebar-nav">
|
||||
<li><a href="#/list">Listaa jäsenet</a></li>
|
||||
<li><a href="#/add">Lisää jäsen</a></li>
|
||||
<li><a href="#/addmany">Lisää jäseniä</a></li>
|
||||
<li><a href="#/applications">Jäsenhakemukset</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /#sidebar-wrapper -->
|
||||
|
||||
<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>
|
||||
|
||||
<!-- DatePicker -->
|
||||
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-messages.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-animate.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-aria.min.js"></script>
|
||||
|
||||
{%load staticfiles %}
|
||||
<script src="/static/js/jquery.noty.packaged.js"></script>
|
||||
<script src="/static/js/appconfig.js"></script>
|
||||
<script src="/static/js/members_routers.js"></script>
|
||||
<script src="/static/js/members_controllers.js"></script>
|
||||
<script src="/static/js/moment.js"></script>
|
||||
<link href="/static/css/simple-sidebar.css" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div id="sidebar-wrapper">
|
||||
<ul class="sidebar-nav">
|
||||
<li><a href="#/list">Listaa jäsenet</a></li>
|
||||
<li><a href="#/add">Lisää jäsen</a></li>
|
||||
<li><a href="#/addmany">Lisää jäseniä</a></li>
|
||||
<li><a href="#/applications">Jäsenhakemukset</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- /#sidebar-wrapper -->
|
||||
|
||||
<!-- Page Content -->
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div id="header" class="row">
|
||||
<div class="col-xs-11 col-sm-11 col-lg-11">
|
||||
<h1 style="text-align:center; margin-top:10px; margin-bottom: 10px;">Aalto-yliopiston Sähköinsinöörikilta RY:n jäsenrekisteri</h1>
|
||||
</div>
|
||||
<div class="col-xs-1 col-sm-1 col-lg-1">
|
||||
<form action="/logout" method="post"> {% csrf_token %}
|
||||
<input type="Submit" value="Logout" name="Logout" class="btn btn-danger" style="margin-top:12px;"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-view></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<!-- Page Content -->
|
||||
<div class="col-xs-12 col-sm-12 col-lg-12">
|
||||
<div id="header" class="row">
|
||||
<div class="col-xs-11 col-sm-11 col-lg-11">
|
||||
<h1 style="text-align:center; margin-top:10px; margin-bottom: 10px;">Aalto-yliopiston Sähköinsinöörikilta RY:n jäsenrekisteri</h1>
|
||||
</div>
|
||||
<div class="col-xs-1 col-sm-1 col-lg-1">
|
||||
<form action="/logout" method="post"> {% csrf_token %}
|
||||
<input type="Submit" value="Logout" name="Logout" class="btn btn-danger" style="margin-top:12px;"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-view></div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{% extends "members_base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<h1> Tommyn jäsenlista </h1>
|
||||
<div>
|
||||
<img src="/static/tommy.jpg" style="width:800px;height:300px;"></img>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
+47
-4
@@ -45,15 +45,58 @@ def send_mail_wrapper(subject, message):
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@permission_required('members.change_member', login_url='/login')
|
||||
def index(request, *args, **kwargs):
|
||||
return render(request, 'members_index.html', {})
|
||||
def member_list(request, *args, **kwargs):
|
||||
context = {}
|
||||
return render(request, 'member_list.html', context)
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@permission_required('members.change_member', login_url='/login')
|
||||
def add_member(request, *args, **kwargs):
|
||||
return render(request, 'add_member.html', {})
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@permission_required('members.change_member', login_url='/login')
|
||||
def add_many_members(request, *args, **kwargs):
|
||||
return render(request, 'add_many_members.html', {})
|
||||
|
||||
@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', {})
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@permission_required('members.change_member', login_url='/login')
|
||||
def tommy_blooper(request, *args, **kwargs):
|
||||
return render(request, 'tommy_blooper.html', {})
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@require_http_methods(["GET"])
|
||||
@permission_required('members.change_member', login_url='/login')
|
||||
def edit_member(request, *args, **kwargs):
|
||||
i = kwargs.pop('index', None);
|
||||
if i is None:
|
||||
return HttpResponse(status=500, error="{'error': 'No member id specified'}")
|
||||
else:
|
||||
return render(request, 'edit_member.html', {'member_id' : i})
|
||||
|
||||
@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);
|
||||
if i is None:
|
||||
return HttpResponse(status=500, error="{'error': 'No member id specified'}")
|
||||
else:
|
||||
return render(request, 'edit_application.html', {'member_id' : i})
|
||||
|
||||
@ensure_csrf_cookie
|
||||
def application_index(request, *args, **kwargs):
|
||||
return render(request, 'application_index.html', {})
|
||||
|
||||
|
||||
@ensure_csrf_cookie
|
||||
def application_success_index(request, *args, **kwargs):
|
||||
return render(request, 'application_success.html', {})
|
||||
@@ -210,4 +253,4 @@ def export_csv(request, *args, **kwargs):
|
||||
|
||||
writer.writerow(field_list)
|
||||
|
||||
return response
|
||||
return response
|
||||
|
||||
Reference in New Issue
Block a user