diff --git a/members/serializers.py b/members/serializers.py
index bcf8793..de62040 100644
--- a/members/serializers.py
+++ b/members/serializers.py
@@ -4,7 +4,8 @@ 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)
@@ -13,8 +14,8 @@ class MemberSerializer(serializers.Serializer):
POR = serializers.CharField(max_length=255)
AYY = serializers.BooleanField(default=False)
jas = serializers.BooleanField(default=False)
- created = serializers.DateTimeField(default=timezone.now)
- paid = serializers.DateTimeField(default=datetime.fromtimestamp(0))
+ created = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
+ paid = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
def create(self, validated_data):
'''
@@ -32,7 +33,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 30825e1..f13355c 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/api/member/" + id).then(function(response) {
+ $http.get("/members/rest/api/members/" + id).then(function(response) {
$scope.member = response.data;
});
$scope.send = function() {
- $http.put("/members/api/member/" + id, $scope.member).then(function(response){
+ $http.put("/members/rest/api/members/" + 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/api/members").then(function(response){
+ $http.get("/members/rest/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/api/member/" + id).then(function(response) {
+ $http.get("/members/rest/api/members/" + 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,12 +99,21 @@ 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){
- $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.");
+ $scope.member = {};
+ //Find member whose payment needs to be updated
+ $scope.member = $scope.members.find(function(element){
+ return element.id == id;
});
+ //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";
@@ -112,7 +121,7 @@ app.controller("getController", function($scope, $document, $http){
/* Delete a single member by id */
$scope.deleteMember = function(id) {
- $http.delete("/members/api/member/" + id).then(
+ $http.delete("/members/rest/api/members/" + id).then(
function(response) {
notySuccess("Poistaminen onnistui")
$scope.updateMembers();
@@ -160,7 +169,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);
@@ -213,7 +222,7 @@ app.controller("getController", function($scope, $document, $http){
app.controller("postController", function($scope, $http, $location) {
$scope.member = {};
$scope.send = function() {
- $http.post("/members/api/member/", $scope.member).then(function(response){
+ $http.post("/members/rest/api/members/", $scope.member).then(function(response){
notySuccess("Jäsen lisätty!");
});
}
@@ -222,12 +231,12 @@ app.controller("postController", function($scope, $http, $location) {
/* Controller for application page */
app.controller("applController", function($scope, $http){
$scope.applUpdateAll = function() {
- $http.get("/members/api/requests").then(function(response){
+ $http.get("/members/rest/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 14a5dda..308948b 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 5d442e9..f710860 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)
-#API views
+# REST API views
########################################
class MembersList(generics.ListCreateAPIView):
queryset = Member.objects.all()
diff --git a/sikweb/urls.py b/sikweb/urls.py
index b279174..7672381 100644
--- a/sikweb/urls.py
+++ b/sikweb/urls.py
@@ -102,6 +102,8 @@ 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()),