resources.py
3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# -*- coding: utf-8 -*-
from django.contrib.auth import get_user_model
from tastypie import fields
from tastypie.constants import ALL_WITH_RELATIONS, ALL
from tastypie.resources import ModelResource
from colab.super_archives.models import Message, EmailAddress
#from proxy.trac.models import Revision, Ticket, Wiki
User = get_user_model()
class UserResource(ModelResource):
class Meta:
queryset = User.objects.filter(is_active=True)
resource_name = 'user'
fields = ['username', 'institution', 'role', 'bio', 'first_name',
'last_name', 'email']
allowed_methods = ['get', ]
filtering = {
'email': ('exact', ),
'username': ALL,
'institution': ALL,
'role': ALL,
'bio': ALL,
}
def dehydrate_email(self, bundle):
return ''
class EmailAddressResource(ModelResource):
user = fields.ForeignKey(UserResource, 'user', full=False, null=True)
class Meta:
queryset = EmailAddress.objects.all()
resource_name = 'emailaddress'
excludes = ['md5', ]
allowed_methods = ['get', ]
filtering = {
'address': ('exact', ),
'user': ALL_WITH_RELATIONS,
'real_name': ALL,
}
def dehydrate_address(self, bundle):
return ''
class MessageResource(ModelResource):
from_address = fields.ForeignKey(EmailAddressResource, 'from_address',
full=False)
class Meta:
queryset = Message.objects.all()
resource_name = 'message'
excludes = ['spam', 'subject_clean', 'message_id']
filtering = {
'from_address': ALL_WITH_RELATIONS,
'subject': ALL,
'body': ALL,
'received_time': ALL,
}
#class RevisionResource(ModelResource):
# class Meta:
# queryset = Revision.objects.all()
# resource_name = 'revision'
# excludes = ['collaborators', ]
# filtering = {
# 'key': ALL,
# 'rev': ALL,
# 'author': ALL,
# 'message': ALL,
# 'repository_name': ALL,
# 'created': ALL,
# }
#
#
#class TicketResource(ModelResource):
# class Meta:
# queryset = Ticket.objects.all()
# resource_name = 'ticket'
# excludes = ['collaborators', ]
# filtering = {
# 'id': ALL,
# 'summary': ALL,
# 'description': ALL,
# 'milestone': ALL,
# 'priority': ALL,
# 'component': ALL,
# 'version': ALL,
# 'severity': ALL,
# 'reporter': ALL,
# 'author': ALL,
# 'status': ALL,
# 'keywords': ALL,
# 'created': ALL,
# 'modified': ALL,
# 'modified_by': ALL,
# }
#
#
#class WikiResource(ModelResource):
# class Meta:
# queryset = Wiki.objects.all()
# resource_name = 'wiki'
# excludes = ['collaborators', ]
# filtering = {
# 'name': ALL,
# 'wiki_text': ALL,
# 'author': ALL,
# 'name': ALL,
# 'created': ALL,
# 'modified': ALL,
# 'modified_by': ALL,
# }