diff --git a/members/serializers.py b/members/serializers.py index de62040..bcf8793 100644 --- a/members/serializers.py +++ b/members/serializers.py @@ -4,8 +4,7 @@ from datetime import datetime from members.models import Member, MemberRequest from django.conf import settings -#, default=timezone.now -# , default=datetime.fromtimestamp(0) + class MemberSerializer(serializers.Serializer): id = serializers.IntegerField(read_only=True) first_name = serializers.CharField(required=True, max_length=127) @@ -14,8 +13,8 @@ class MemberSerializer(serializers.Serializer): POR = serializers.CharField(max_length=255) AYY = serializers.BooleanField(default=False) jas = serializers.BooleanField(default=False) - created = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") - paid = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S") + created = serializers.DateTimeField(default=timezone.now) + paid = serializers.DateTimeField(default=datetime.fromtimestamp(0)) def create(self, validated_data): ''' @@ -33,7 +32,7 @@ class MemberSerializer(serializers.Serializer): instance.POR = validated_data.get('POR', instance.POR) instance.AYY = validated_data.get('AYY', instance.AYY) instance.jas = validated_data.get('jas', instance.jas) - # instance.created = validated_data.get('created', instance.created) + instance.created = validated_data.get('created', instance.created) instance.paid = validated_data.get('paid', instance.paid) instance.save() return instance diff --git a/members/static/js/members_controllers.js b/members/static/js/members_controllers.js index f13355c..30825e1 100644 --- a/members/static/js/members_controllers.js +++ b/members/static/js/members_controllers.js @@ -23,12 +23,12 @@ function memberDataEditor(returnPath) { return function($scope, $http, $window, $location) { var id = memberId; console.log("id: " + id); - $http.get("/members/rest/api/members/" + id).then(function(response) { + $http.get("/members/api/member/" + id).then(function(response) { $scope.member = response.data; }); $scope.send = function() { - $http.put("/members/rest/api/members/" + id + "/", $scope.member).then(function(response){ + $http.put("/members/api/member/" + id, $scope.member).then(function(response){ notySuccess("Jäsentiedot tallennettu"); $window.location = returnPath; }); @@ -69,26 +69,26 @@ app.controller("getController", function($scope, $document, $http){ /* Fetch all members from the database and show all members in the table */ $scope.updateMembers = function() { - $http.get("/members/rest/api/members").then(function(response){ + $http.get("/members/api/members").then(function(response){ $scope.members = response.data; // map trues and falses to more user-friendly format - // _.each($scope.members, function(m){ - // m.jas = m.jas ? "Kyllä" : "Ei"; - // m.AYY = m.AYY ? "Kyllä" : "Ei"; - // }); + _.each($scope.members, function(m){ + m.jas = m.jas ? "Kyllä" : "Ei"; + m.AYY = m.AYY ? "Kyllä" : "Ei"; + }); $scope.shown_members = $scope.members; }); }; /* Fetch a single member from the database by id and update its row */ $scope.updateMember = function(id) { - $http.get("/members/rest/api/members/" + id).then(function(response) { + $http.get("/members/api/member/" + id).then(function(response) { for (var i = 0; i < $scope.shown_members.length; i++) { var member = $scope.shown_members[i]; if (String(member.id) == String(id)) { member = response.data; - // member.jas = member.jas ? "Kyllä" : "Ei"; - // member.AYY = member.AYY ? "Kyllä" : "Ei"; + member.jas = member.jas ? "Kyllä" : "Ei"; + member.AYY = member.AYY ? "Kyllä" : "Ei"; $scope.shown_members[i] = member; } @@ -99,21 +99,12 @@ app.controller("getController", function($scope, $document, $http){ /* Update the payment date of a single member to the current time and send * the member to the database */ $scope.updatePayment= function(id){ - $scope.member = {}; - //Find member whose payment needs to be updated - $scope.member = $scope.members.find(function(element){ - return element.id == id; + $http.put("/members/api/member/"+id, { paid: moment().format("YYYY-MM-DD kk:mm:ss") }).then(function(response) { + $scope.updateMember(id); + notySuccess("Maksupäivämäärä päivitetty."); }); - //Update the member data if member was found - if($scope.member != undefined){ - $scope.member.paid = moment().format("YYYY-MM-DD kk:mm:ss"); - $http.put("/members/rest/api/members/"+id +"/", $scope.member).then(function(response) { - $scope.updateMember(id); - notySuccess("Maksupäivämäärä päivitetty."); - }); - } }; - + /* Redirect the browser to the CSV dump download endpoint */ $scope.loadCSV = function() { window.location = "/members/api/getCSV"; @@ -121,7 +112,7 @@ app.controller("getController", function($scope, $document, $http){ /* Delete a single member by id */ $scope.deleteMember = function(id) { - $http.delete("/members/rest/api/members/" + id).then( + $http.delete("/members/api/member/" + id).then( function(response) { notySuccess("Poistaminen onnistui") $scope.updateMembers(); @@ -169,7 +160,7 @@ app.controller("getController", function($scope, $document, $http){ if (name.length == 0) continue; if (member.first_name.toLowerCase().includes(name) - || member.last_name.toLowerCase().includes(name) + || member.last_name.toLowerCase().includes(name) || member.email.toLowerCase().includes(name)) { result.push(member); @@ -222,7 +213,7 @@ app.controller("getController", function($scope, $document, $http){ app.controller("postController", function($scope, $http, $location) { $scope.member = {}; $scope.send = function() { - $http.post("/members/rest/api/members/", $scope.member).then(function(response){ + $http.post("/members/api/member/", $scope.member).then(function(response){ notySuccess("Jäsen lisätty!"); }); } @@ -231,12 +222,12 @@ app.controller("postController", function($scope, $http, $location) { /* Controller for application page */ app.controller("applController", function($scope, $http){ $scope.applUpdateAll = function() { - $http.get("/members/rest/api/requests").then(function(response){ + $http.get("/members/api/requests").then(function(response){ $scope.applications = response.data; - // _.each($scope.applications, function(a){ - // a.member.jas = a.member.jas ? "Kyllä" : "Ei"; - // a.member.AYY = a.member.AYY ? "Kyllä" : "Ei"; - // }); + _.each($scope.applications, function(a){ + a.member.jas = a.member.jas ? "Kyllä" : "Ei"; + a.member.AYY = a.member.AYY ? "Kyllä" : "Ei"; + }); }); }; diff --git a/members/templates/edit_application.html b/members/templates/edit_application.html index 308948b..14a5dda 100644 --- a/members/templates/edit_application.html +++ b/members/templates/edit_application.html @@ -33,8 +33,8 @@ - - + + diff --git a/members/views.py b/members/views.py index f710860..5d442e9 100644 --- a/members/views.py +++ b/members/views.py @@ -24,7 +24,7 @@ memberlogger = logging.getLogger(__name__) logging.basicConfig(format='[%(levelname)s]%(asctime)s %(message)s', level=settings.LOGGERLEVEL, filename=settings.LOGPATH) -# REST API views +#API views ######################################## class MembersList(generics.ListCreateAPIView): queryset = Member.objects.all() diff --git a/sikweb/urls.py b/sikweb/urls.py index 7672381..b279174 100644 --- a/sikweb/urls.py +++ b/sikweb/urls.py @@ -102,8 +102,6 @@ urlpatterns = [ url(r'^members/api/request/(?P\d+)$', handle_mem_request), url(r'^members/api/getCSV$', mem_csv_export), url(r'^members/tommy$', tommy_blooper), - - # Members API url(r'^members/rest/api/members/$', memsListAPI.as_view()), url(r'^members/rest/api/members/(?P\d+)/$', memDetailAPI.as_view()), url(r'^members/rest/api/requests/$', reqListAPI.as_view()),