src/p4l/api/views.py
author ymh <ymh.work@gmail.com>
Thu, 26 Sep 2013 15:24:41 +0200
changeset 119 ece69ca3ac24
parent 108 c08f9b46a6c5
child 126 a345f1a67bf1
permissions -rw-r--r--
- correct import pour indexation - improve new record management
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
'''
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Created on Sep 2, 2013
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
@author: ymh
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
'''
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from p4l.api.serializers import RecordSerializer
119
ece69ca3ac24 - correct import pour indexation
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
     8
from p4l.models import Record, signals
16
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
from rest_framework import viewsets
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
class RecordViewSet(viewsets.ModelViewSet):
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    '''
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    API endpoint that allow Record to be viewed or edited
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    '''
104
b66ca6275115 add creation + modification fields
ymh <ymh.work@gmail.com>
parents: 16
diff changeset
    15
    def pre_save(self, obj):
119
ece69ca3ac24 - correct import pour indexation
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    16
        super(RecordViewSet, self).pre_save(obj)
104
b66ca6275115 add creation + modification fields
ymh <ymh.work@gmail.com>
parents: 16
diff changeset
    17
        if self.request and hasattr(self.request, 'user') and self.request.user:
108
c08f9b46a6c5 use PEP8 convention on system fields for Records
ymh <ymh.work@gmail.com>
parents: 104
diff changeset
    18
            obj.modified_by =  self.request.user
16
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
119
ece69ca3ac24 - correct import pour indexation
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    20
    def post_save(self, obj, created=False):
ece69ca3ac24 - correct import pour indexation
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    21
        super(RecordViewSet, self).post_save(obj, created=created)
ece69ca3ac24 - correct import pour indexation
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    22
        signals.record_saved.send(Record, instance=obj, created=created)
ece69ca3ac24 - correct import pour indexation
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    23
        
ece69ca3ac24 - correct import pour indexation
ymh <ymh.work@gmail.com>
parents: 108
diff changeset
    24
16
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    queryset = Record.objects.all()
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    serializer_class = RecordSerializer
19fe06edb58d Add api for records
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    lookup_field = 'identifier'