diff --git a/src/api/migrations/0001_initial.py b/src/api/migrations/0001_initial.py deleted file mode 100644 index cb19411..0000000 --- a/src/api/migrations/0001_initial.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - pass - - def backwards(self, orm): - pass - - models = { - - } - - complete_apps = ['api'] \ No newline at end of file diff --git a/src/api/migrations/__init__.py b/src/api/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/src/api/migrations/__init__.py +++ /dev/null diff --git a/src/api/models.py b/src/api/models.py deleted file mode 100644 index 630b7f8..0000000 --- a/src/api/models.py +++ /dev/null @@ -1,117 +0,0 @@ -# -*- coding: utf-8 -*- - -from tastypie import fields -from tastypie.constants import ALL_WITH_RELATIONS, ALL -from tastypie.resources import ModelResource - -from accounts.models import User -from super_archives.models import Message, EmailAddress -from proxy.models import Revision, Ticket, Wiki - - -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, - } diff --git a/src/api/resources.py b/src/api/resources.py new file mode 100644 index 0000000..630b7f8 --- /dev/null +++ b/src/api/resources.py @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- + +from tastypie import fields +from tastypie.constants import ALL_WITH_RELATIONS, ALL +from tastypie.resources import ModelResource + +from accounts.models import User +from super_archives.models import Message, EmailAddress +from proxy.models import Revision, Ticket, Wiki + + +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, + } diff --git a/src/api/urls.py b/src/api/urls.py index 8280233..1dbb36a 100644 --- a/src/api/urls.py +++ b/src/api/urls.py @@ -4,7 +4,7 @@ from django.conf.urls import patterns, include, url from tastypie.api import Api -from .models import (UserResource, EmailAddressResource, MessageResource, +from .resources import (UserResource, EmailAddressResource, MessageResource, RevisionResource, TicketResource, WikiResource) from .views import VoteView -- libgit2 0.21.2