~jmillikin/+junk/pixra

« back to all changes in this revision

Viewing changes to pixra/views/label.py

  • Committer: John Millikin
  • Date: 2008-10-07 01:46:09 UTC
  • Revision ID: jmillikin@gmail.com-20081007014609-19r9qqpanm3o2shb
Merge ``label.set_name`` into the generic label resource view.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
from django.http import HttpResponse
4
4
 
5
5
from pixra.util import render_to_response, post_only, ajax_response
 
6
from pixra.rest import Resource
6
7
from pixra.imagepaginator import ImagePaginator
7
8
from pixra import models
8
9
 
9
 
def get_label (label_id):
 
10
def get_label (request, label_id):
10
11
        return get_object_or_404 (models.Label.objects.all (), pk = label_id)
11
12
        
 
13
label_resource = Resource (get_label)
 
14
view = label_resource
 
15
 
12
16
def list_all (request):
13
17
        return render_to_response (request, 'pixra/label/list.xml',
14
18
                labels = models.Label.objects.extra (
18
22
                ),
19
23
        )
20
24
        
21
 
def view (request, label_id):
22
 
        label = get_label (label_id)
 
25
@label_resource.handle ('GET')
 
26
def label_resource_get (request, label):
23
27
        all_images = label.images.all ()
24
28
        paginator = ImagePaginator (request, all_images)
25
29
        
29
33
                paginator = paginator,
30
34
        )
31
35
        
 
36
@label_resource.handle ('PUT')
 
37
def label_resource_put (request, label):
 
38
        if 'name' in request.PUT:
 
39
                label.name = request.PUT['name']
 
40
                label.save ()
 
41
                
 
42
        return {'name': unicode (label)}
 
43
        
32
44
@post_only
33
45
@ajax_response
34
46
def add_implication (request, label_id):
51
63
        child.remove_implication (parent)
52
64
        return True
53
65
        
54
 
@post_only
55
 
@ajax_response
56
 
def set_name (request, label_id):
57
 
        label = get_label (label_id)
58
 
        label.name = request.POST['name']
59
 
        label.save ()
60
 
        return {'name': unicode (label)}
61
 
        
62
66
def autocomplete (request):
63
67
        labels = models.Label.search_for (request.GET['q'])
64
68
        lines = map (unicode, labels)