# -*- 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 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, # }