Added a very simple html version of the json API, to make it easier to explore the api manually.

- Legacy-Id: 9991
This commit is contained in:
Henrik Levkowetz 2015-08-09 16:28:55 +00:00
parent 6ebe1faf1a
commit 2fe8dcb4c2
21 changed files with 211 additions and 3 deletions

View file

@ -5,9 +5,11 @@ import datetime
from django.conf import settings
from django.http import HttpResponse
from django.core.urlresolvers import reverse
from django.utils.encoding import force_text
from tastypie.api import Api
from tastypie.serializers import Serializer
from tastypie.bundle import Bundle
from tastypie.serializers import Serializer as BaseSerializer
from tastypie.exceptions import BadRequest, ApiFieldError
from tastypie.utils.mime import determine_format, build_content_type
from tastypie.utils import is_valid_jsonp_callback_value
@ -17,6 +19,58 @@ import debug # pyflakes:ignore
_api_list = []
class Serializer(BaseSerializer):
def to_html(self, data, options=None):
"""
Reserved for future usage.
The desire is to provide HTML output of a resource, making an API
available to a browser. This is on the TODO list but not currently
implemented.
"""
from django.template.loader import render_to_string as render
options = options or {}
serialized = self.to_simple_html(data, options)
return render("api/base.html", {"data": serialized})
def to_simple_html(self, data, options):
"""
"""
from django.template.loader import render_to_string as render
#
if isinstance(data, (list, tuple)):
return render("api/listitem.html", {"data": [self.to_simple_html(item, options) for item in data]})
if isinstance(data, dict):
return render("api/dictitem.html", {"data": dict((key, self.to_simple_html(val, options)) for (key, val) in data.items())})
elif isinstance(data, Bundle):
return render("api/dictitem.html", {"data":dict((key, self.to_simple_html(val, options)) for (key, val) in data.data.items())})
elif hasattr(data, 'dehydrated_type'):
debug.show('data')
if getattr(data, 'dehydrated_type', None) == 'related' and data.is_m2m == False:
return render("api/relitem.html", {"fk": data.fk_resource, "val": self.to_simple_html(data.value, options)})
elif getattr(data, 'dehydrated_type', None) == 'related' and data.is_m2m == True:
render("api/listitem.html", {"data": [self.to_simple_html(bundle, options) for bundle in data.m2m_bundles]})
else:
return self.to_simple_html(data.value, options)
elif isinstance(data, datetime.datetime):
return self.format_datetime(data)
elif isinstance(data, datetime.date):
return self.format_date(data)
elif isinstance(data, datetime.time):
return self.format_time(data)
elif isinstance(data, bool):
return data
elif isinstance(data, (six.integer_types, float)):
return data
elif data is None:
return None
elif isinstance(data, basestring) and data.startswith("/api/v1/"): # XXX Will not work for Python 3
return render("api/relitem.html", {"fk": data, "val": data.split('/')[-2]})
else:
return force_text(data)
for _app in settings.INSTALLED_APPS:
_module_dict = globals()
if '.' in _app:
@ -119,4 +173,4 @@ class TimedeltaField(ApiField):
return value

View file

@ -32,6 +32,7 @@ class {{model.name}}Resource(ModelResource):{% if model.foreign_keys %}{% for fk
{{fk.name|ljust:"16"}} = ToManyField({{fk.rmodel_name}}, '{{fk.name}}', null=True){% endfor %}{% endif %}
class Meta:
queryset = {{model.name}}.objects.all()
serializer = api.Serializer()
#resource_name = '{{model.resource_name}}'
filtering = { {% for name in model.plain_names %}
"{{ name }}": ALL,{%endfor%}{% for name in model.fk_names%}

View file

@ -0,0 +1,24 @@
<html>
<head>
<style type="text/css">
p.comment {
background-color: #cfc;
border: solid black 1px;
padding: 0.5em;
}
</style>
</head>
<body>
<div id="page_wrapper">
<p class="comment">
This is a very simple html version of the JSON api, to make it easier to manually explore
the API.<br/>
To see the pure JSON version, add '?format=json' to the browser url, or access
the API with the "Accept:" http header set to "Accept: application/json".
</p>
<section class="content">
{% block content %}{{data}}{% endblock %}
</section>
</div>
</body>
</html>

View file

@ -0,0 +1,8 @@
{
<!-- dictitem.html -->
<div style="margin-left: 1em;">
{% for key, value in data.items %}
"{{key}}": {{value}}{% if not forloop.last %},{% endif %}<br/>
{% endfor %}
</div>
}

View file

@ -0,0 +1,8 @@
[
<!-- listitem.html -->
<div style="margin-left: 1em;">
{% for item in data %}
{{item}}{% if not forloop.last %},{% endif %}
{% endfor %}
</div>
]

View file

@ -0,0 +1,2 @@
<!-- relitem.html -->
<a href="{{fk}}">{{val}}</a>

View file

@ -17,6 +17,7 @@ class CommunityListResource(ModelResource):
added_ids = ToManyField(DocumentResource, 'added_ids', null=True)
class Meta:
queryset = CommunityList.objects.all()
serializer = api.Serializer()
#resource_name = 'communitylist'
filtering = {
"id": ALL,
@ -34,6 +35,7 @@ class ExpectedChangeResource(ModelResource):
document = ToOneField(DocumentResource, 'document')
class Meta:
queryset = ExpectedChange.objects.all()
serializer = api.Serializer()
#resource_name = 'expectedchange'
filtering = {
"id": ALL,
@ -47,6 +49,7 @@ class DisplayConfigurationResource(ModelResource):
community_list = ToOneField(CommunityListResource, 'community_list')
class Meta:
queryset = DisplayConfiguration.objects.all()
serializer = api.Serializer()
#resource_name = 'displayconfiguration'
filtering = {
"id": ALL,
@ -61,6 +64,7 @@ class ListNotificationResource(ModelResource):
event = ToOneField(DocEventResource, 'event')
class Meta:
queryset = ListNotification.objects.all()
serializer = api.Serializer()
#resource_name = 'listnotification'
filtering = {
"id": ALL,
@ -75,6 +79,7 @@ class RuleResource(ModelResource):
cached_ids = ToManyField(DocumentResource, 'cached_ids', null=True)
class Meta:
queryset = Rule.objects.all()
serializer = api.Serializer()
#resource_name = 'rule'
filtering = {
"id": ALL,
@ -90,6 +95,7 @@ class EmailSubscriptionResource(ModelResource):
community_list = ToOneField(CommunityListResource, 'community_list')
class Meta:
queryset = EmailSubscription.objects.all()
serializer = api.Serializer()
#resource_name = 'emailsubscription'
filtering = {
"id": ALL,
@ -104,6 +110,7 @@ class DocumentChangeDatesResource(ModelResource):
document = ToOneField(DocumentResource, 'document')
class Meta:
queryset = DocumentChangeDates.objects.all()
serializer = api.Serializer()
#resource_name = 'documentchangedates'
filtering = {
"id": ALL,

View file

@ -15,6 +15,7 @@ class DBTemplateResource(ModelResource):
group = ToOneField(GroupResource, 'group', null=True)
class Meta:
queryset = DBTemplate.objects.all()
serializer = api.Serializer()
#resource_name = 'dbtemplate'
filtering = {
"id": ALL,

View file

@ -14,6 +14,7 @@ class BallotTypeResource(ModelResource):
positions = ToManyField(BallotPositionNameResource, 'positions', null=True)
class Meta:
queryset = BallotType.objects.all()
serializer = api.Serializer()
#resource_name = 'ballottype'
filtering = {
"id": ALL,
@ -34,6 +35,7 @@ class DeletedEventResource(ModelResource):
by = ToOneField(PersonResource, 'by')
class Meta:
queryset = DeletedEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'deletedevent'
filtering = {
"id": ALL,
@ -47,6 +49,7 @@ api.doc.register(DeletedEventResource())
class StateTypeResource(ModelResource):
class Meta:
queryset = StateType.objects.all()
serializer = api.Serializer()
#resource_name = 'statetype'
filtering = {
"slug": ALL,
@ -59,6 +62,7 @@ class StateResource(ModelResource):
next_states = ToManyField('ietf.doc.resources.StateResource', 'next_states', null=True)
class Meta:
queryset = State.objects.all()
serializer = api.Serializer()
#resource_name = 'state'
filtering = {
"id": ALL,
@ -89,6 +93,7 @@ class DocumentResource(ModelResource):
rfc = CharField(attribute='rfc_number', null=True)
class Meta:
queryset = Document.objects.all()
serializer = api.Serializer()
#resource_name = 'document'
filtering = {
"time": ALL,
@ -122,6 +127,7 @@ class DocumentAuthorResource(ModelResource):
author = ToOneField(EmailResource, 'author')
class Meta:
queryset = DocumentAuthor.objects.all()
serializer = api.Serializer()
#resource_name = 'documentauthor'
filtering = {
"id": ALL,
@ -137,6 +143,7 @@ class DocEventResource(ModelResource):
doc = ToOneField(DocumentResource, 'doc')
class Meta:
queryset = DocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'docevent'
filtering = {
"id": ALL,
@ -157,6 +164,7 @@ class StateDocEventResource(ModelResource):
state = ToOneField(StateResource, 'state', null=True)
class Meta:
queryset = StateDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'statedocevent'
filtering = {
"id": ALL,
@ -178,6 +186,7 @@ class ConsensusDocEventResource(ModelResource):
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
class Meta:
queryset = ConsensusDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'consensusdocevent'
filtering = {
"id": ALL,
@ -195,6 +204,7 @@ class DocAliasResource(ModelResource):
document = ToOneField(DocumentResource, 'document')
class Meta:
queryset = DocAlias.objects.all()
serializer = api.Serializer()
#resource_name = 'docalias'
filtering = {
"id": ALL,
@ -210,6 +220,7 @@ class TelechatDocEventResource(ModelResource):
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
class Meta:
queryset = TelechatDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'telechatdocevent'
filtering = {
"id": ALL,
@ -230,6 +241,7 @@ class DocReminderResource(ModelResource):
type = ToOneField(DocReminderTypeNameResource, 'type')
class Meta:
queryset = DocReminder.objects.all()
serializer = api.Serializer()
#resource_name = 'docreminder'
filtering = {
"id": ALL,
@ -247,6 +259,7 @@ class LastCallDocEventResource(ModelResource):
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
class Meta:
queryset = LastCallDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'lastcalldocevent'
filtering = {
"id": ALL,
@ -267,6 +280,7 @@ class NewRevisionDocEventResource(ModelResource):
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
class Meta:
queryset = NewRevisionDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'newrevisiondocevent'
filtering = {
"id": ALL,
@ -287,6 +301,7 @@ class WriteupDocEventResource(ModelResource):
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
class Meta:
queryset = WriteupDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'writeupdocevent'
filtering = {
"id": ALL,
@ -307,6 +322,7 @@ class InitialReviewDocEventResource(ModelResource):
docevent_ptr = ToOneField(DocEventResource, 'docevent_ptr')
class Meta:
queryset = InitialReviewDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'initialreviewdocevent'
filtering = {
"id": ALL,
@ -328,6 +344,7 @@ class BallotDocEventResource(ModelResource):
ballot_type = ToOneField(BallotTypeResource, 'ballot_type')
class Meta:
queryset = BallotDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'ballotdocevent'
filtering = {
"id": ALL,
@ -348,6 +365,7 @@ class RelatedDocumentResource(ModelResource):
relationship = ToOneField(DocRelationshipNameResource, 'relationship')
class Meta:
queryset = RelatedDocument.objects.all()
serializer = api.Serializer()
#resource_name = 'relateddocument'
filtering = {
"id": ALL,
@ -375,6 +393,7 @@ class DocHistoryResource(ModelResource):
authors = ToManyField(EmailResource, 'authors', null=True)
class Meta:
queryset = DocHistory.objects.all()
serializer = api.Serializer()
#resource_name = 'dochistory'
filtering = {
"id": ALL,
@ -416,6 +435,7 @@ class BallotPositionDocEventResource(ModelResource):
pos = ToOneField(BallotPositionNameResource, 'pos')
class Meta:
queryset = BallotPositionDocEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'ballotpositiondocevent'
filtering = {
"id": ALL,
@ -441,6 +461,7 @@ class DocHistoryAuthorResource(ModelResource):
author = ToOneField(EmailResource, 'author')
class Meta:
queryset = DocHistoryAuthor.objects.all()
serializer = api.Serializer()
#resource_name = 'dochistoryauthor'
filtering = {
"id": ALL,
@ -457,6 +478,7 @@ class RelatedDocHistoryResource(ModelResource):
relationship = ToOneField(DocRelationshipNameResource, 'relationship')
class Meta:
queryset = RelatedDocHistory.objects.all()
serializer = api.Serializer()
#resource_name = 'relateddochistory'
filtering = {
"id": ALL,

View file

@ -20,6 +20,7 @@ class GroupResource(ModelResource):
unused_tags = ToManyField(DocTagNameResource, 'unused_tags', null=True)
class Meta:
queryset = Group.objects.all()
serializer = api.Serializer()
#resource_name = 'group'
filtering = {
"id": ALL,
@ -47,6 +48,7 @@ class GroupStateTransitionsResource(ModelResource):
next_states = ToManyField('ietf.doc.resources.StateResource', 'next_states', null=True)
class Meta:
queryset = GroupStateTransitions.objects.all()
serializer = api.Serializer()
#resource_name = 'groupstatetransitions'
filtering = {
"id": ALL,
@ -63,6 +65,7 @@ class GroupMilestoneResource(ModelResource):
docs = ToManyField('ietf.doc.resources.DocumentResource', 'docs', null=True)
class Meta:
queryset = GroupMilestone.objects.all()
serializer = api.Serializer()
#resource_name = 'groupmilestone'
filtering = {
"id": ALL,
@ -88,6 +91,7 @@ class GroupHistoryResource(ModelResource):
unused_tags = ToManyField(DocTagNameResource, 'unused_tags', null=True)
class Meta:
queryset = GroupHistory.objects.all()
serializer = api.Serializer()
#resource_name = 'grouphistory'
filtering = {
"id": ALL,
@ -113,6 +117,7 @@ class GroupURLResource(ModelResource):
group = ToOneField(GroupResource, 'group')
class Meta:
queryset = GroupURL.objects.all()
serializer = api.Serializer()
#resource_name = 'groupurl'
filtering = {
"id": ALL,
@ -131,6 +136,7 @@ class RoleResource(ModelResource):
email = ToOneField(EmailResource, 'email')
class Meta:
queryset = Role.objects.all()
serializer = api.Serializer()
#resource_name = 'role'
filtering = {
"id": ALL,
@ -147,6 +153,7 @@ class GroupEventResource(ModelResource):
by = ToOneField(PersonResource, 'by')
class Meta:
queryset = GroupEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'groupevent'
filtering = {
"id": ALL,
@ -167,6 +174,7 @@ class RoleHistoryResource(ModelResource):
email = ToOneField(EmailResource, 'email')
class Meta:
queryset = RoleHistory.objects.all()
serializer = api.Serializer()
#resource_name = 'rolehistory'
filtering = {
"id": ALL,
@ -185,6 +193,7 @@ class GroupMilestoneHistoryResource(ModelResource):
docs = ToManyField('ietf.doc.resources.DocumentResource', 'docs', null=True)
class Meta:
queryset = GroupMilestoneHistory.objects.all()
serializer = api.Serializer()
#resource_name = 'groupmilestonehistory'
filtering = {
"id": ALL,
@ -207,6 +216,7 @@ class MilestoneGroupEventResource(ModelResource):
milestone = ToOneField(GroupMilestoneResource, 'milestone')
class Meta:
queryset = MilestoneGroupEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'milestonegroupevent'
filtering = {
"id": ALL,
@ -229,6 +239,7 @@ class ChangeStateGroupEventResource(ModelResource):
state = ToOneField(GroupStateNameResource, 'state')
class Meta:
queryset = ChangeStateGroupEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'changestategroupevent'
filtering = {
"id": ALL,

View file

@ -10,6 +10,7 @@ from ietf.iesg.models import * # pyflakes:ignore
class TelechatDateResource(ModelResource):
class Meta:
queryset = TelechatDate.objects.all()
serializer = api.Serializer()
#resource_name = 'telechatdate'
filtering = {
"id": ALL,
@ -20,6 +21,7 @@ api.iesg.register(TelechatDateResource())
class TelechatResource(ModelResource):
class Meta:
queryset = Telechat.objects.all()
serializer = api.Serializer()
#resource_name = 'telechat'
filtering = {
"telechat_id": ALL,
@ -36,6 +38,7 @@ api.iesg.register(TelechatResource())
class TelechatAgendaItemResource(ModelResource):
class Meta:
queryset = TelechatAgendaItem.objects.all()
serializer = api.Serializer()
#resource_name = 'telechatagendaitem'
filtering = {
"id": ALL,

View file

@ -18,6 +18,7 @@ class IprDisclosureBaseResource(ModelResource):
rel = ToManyField('ietf.ipr.resources.IprDisclosureBaseResource', 'rel', null=True)
class Meta:
queryset = IprDisclosureBase.objects.all()
serializer = api.Serializer()
#resource_name = 'iprdisclosurebase'
filtering = {
"id": ALL,
@ -42,6 +43,7 @@ class IprDocRelResource(ModelResource):
document = ToOneField(DocAliasResource, 'document')
class Meta:
queryset = IprDocRel.objects.all()
serializer = api.Serializer()
#resource_name = 'iprdocrel'
filtering = {
"id": ALL,
@ -64,6 +66,7 @@ class HolderIprDisclosureResource(ModelResource):
rel = ToManyField(IprDisclosureBaseResource, 'rel', null=True)
class Meta:
queryset = HolderIprDisclosure.objects.all()
serializer = api.Serializer()
#resource_name = 'holderiprdisclosure'
filtering = {
"id": ALL,
@ -105,6 +108,7 @@ class ThirdPartyIprDisclosureResource(ModelResource):
rel = ToManyField(IprDisclosureBaseResource, 'rel', null=True)
class Meta:
queryset = ThirdPartyIprDisclosure.objects.all()
serializer = api.Serializer()
#resource_name = 'thirdpartyiprdisclosure'
filtering = {
"id": ALL,
@ -136,6 +140,7 @@ class RelatedIprResource(ModelResource):
relationship = ToOneField(DocRelationshipNameResource, 'relationship')
class Meta:
queryset = RelatedIpr.objects.all()
serializer = api.Serializer()
#resource_name = 'relatedipr'
filtering = {
"id": ALL,
@ -156,6 +161,7 @@ class NonDocSpecificIprDisclosureResource(ModelResource):
rel = ToManyField(IprDisclosureBaseResource, 'rel', null=True)
class Meta:
queryset = NonDocSpecificIprDisclosure.objects.all()
serializer = api.Serializer()
#resource_name = 'nondocspecificiprdisclosure'
filtering = {
"id": ALL,
@ -192,6 +198,7 @@ class GenericIprDisclosureResource(ModelResource):
rel = ToManyField(IprDisclosureBaseResource, 'rel', null=True)
class Meta:
queryset = GenericIprDisclosure.objects.all()
serializer = api.Serializer()
#resource_name = 'genericiprdisclosure'
filtering = {
"id": ALL,
@ -226,6 +233,7 @@ class IprEventResource(ModelResource):
in_reply_to = ToOneField(MessageResource, 'in_reply_to', null=True)
class Meta:
queryset = IprEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'iprevent'
filtering = {
"id": ALL,
@ -252,6 +260,7 @@ class LegacyMigrationIprEventResource(ModelResource):
iprevent_ptr = ToOneField(IprEventResource, 'iprevent_ptr')
class Meta:
queryset = LegacyMigrationIprEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'legacymigrationiprevent'
filtering = {
"id": ALL,

View file

@ -21,6 +21,7 @@ class LiaisonStatementResource(ModelResource):
attachments = ToManyField(DocumentResource, 'attachments', null=True)
class Meta:
queryset = LiaisonStatement.objects.all()
serializer = api.Serializer()
#resource_name = 'liaisonstatement'
filtering = {
"id": ALL,

View file

@ -14,6 +14,7 @@ class MeetingResource(ModelResource):
agenda = ToOneField('ietf.meeting.resources.ScheduleResource', 'agenda', null=True)
class Meta:
queryset = Meeting.objects.all()
serializer = api.Serializer()
#resource_name = 'meeting'
filtering = {
"id": ALL,
@ -42,6 +43,7 @@ class ResourceAssociationResource(ModelResource):
name = ToOneField(RoomResourceNameResource, 'name')
class Meta:
queryset = ResourceAssociation.objects.all()
serializer = api.Serializer()
resource_name = 'resourceassociation'
filtering = {
"id": ALL,
@ -62,6 +64,7 @@ class ConstraintResource(ModelResource):
name = ToOneField(ConstraintNameResource, 'name')
class Meta:
queryset = Constraint.objects.all()
serializer = api.Serializer()
#resource_name = 'constraint'
filtering = {
"id": ALL,
@ -81,6 +84,7 @@ class RoomResource(ModelResource):
session_types = ToManyField(TimeSlotTypeNameResource, 'session_types', null=True)
class Meta:
queryset = Room.objects.all()
serializer = api.Serializer()
#resource_name = 'room'
filtering = {
"id": ALL,
@ -99,6 +103,7 @@ class ScheduleResource(ModelResource):
owner = ToOneField(PersonResource, 'owner')
class Meta:
queryset = Schedule.objects.all()
serializer = api.Serializer()
#resource_name = 'schedule'
filtering = {
"id": ALL,
@ -126,6 +131,7 @@ class SessionResource(ModelResource):
requested_duration = api.TimedeltaField()
class Meta:
queryset = Session.objects.all()
serializer = api.Serializer()
#resource_name = 'session'
filtering = {
"id": ALL,
@ -157,6 +163,7 @@ class TimeSlotResource(ModelResource):
duration = api.TimedeltaField()
class Meta:
queryset = TimeSlot.objects.all()
serializer = api.Serializer()
#resource_name = 'timeslot'
filtering = {
"id": ALL,
@ -179,6 +186,7 @@ class ScheduledSessionResource(ModelResource):
extendedfrom = ToOneField('ietf.meeting.resources.ScheduledSessionResource', 'extendedfrom', null=True)
class Meta:
queryset = ScheduledSession.objects.all()
serializer = api.Serializer()
#resource_name = 'scheduledsession'
filtering = {
"id": ALL,
@ -201,6 +209,7 @@ class SessionPresentationResource(ModelResource):
document = ToOneField(DocumentResource, 'document')
class Meta:
queryset = SessionPresentation.objects.all()
serializer = api.Serializer()
#resource_name = 'sessionpresentation'
filtering = {
"id": ALL,

View file

@ -17,6 +17,7 @@ class MessageResource(ModelResource):
related_docs = ToManyField(DocumentResource, 'related_docs', null=True)
class Meta:
queryset = Message.objects.all()
serializer = api.Serializer()
#resource_name = 'message'
filtering = {
"id": ALL,
@ -41,6 +42,7 @@ class SendQueueResource(ModelResource):
message = ToOneField(MessageResource, 'message')
class Meta:
queryset = SendQueue.objects.all()
serializer = api.Serializer()
#resource_name = 'sendqueue'
filtering = {
"id": ALL,

View file

@ -11,6 +11,7 @@ from ietf.name.models import * # pyflakes:ignore
class TimeSlotTypeNameResource(ModelResource):
class Meta:
queryset = TimeSlotTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'timeslottypename'
filtering = {
"slug": ALL,
@ -24,6 +25,7 @@ api.name.register(TimeSlotTypeNameResource())
class GroupStateNameResource(ModelResource):
class Meta:
queryset = GroupStateName.objects.all()
serializer = api.Serializer()
#resource_name = 'groupstatename'
filtering = {
"slug": ALL,
@ -37,6 +39,7 @@ api.name.register(GroupStateNameResource())
class DocTagNameResource(ModelResource):
class Meta:
queryset = DocTagName.objects.all()
serializer = api.Serializer()
#resource_name = 'doctagname'
filtering = {
"slug": ALL,
@ -50,6 +53,7 @@ api.name.register(DocTagNameResource())
class IntendedStdLevelNameResource(ModelResource):
class Meta:
queryset = IntendedStdLevelName.objects.all()
serializer = api.Serializer()
#resource_name = 'intendedstdlevelname'
filtering = {
"slug": ALL,
@ -63,6 +67,7 @@ api.name.register(IntendedStdLevelNameResource())
class LiaisonStatementPurposeNameResource(ModelResource):
class Meta:
queryset = LiaisonStatementPurposeName.objects.all()
serializer = api.Serializer()
#resource_name = 'liaisonstatementpurposename'
filtering = {
"slug": ALL,
@ -77,6 +82,7 @@ class DraftSubmissionStateNameResource(ModelResource):
next_states = ToManyField('ietf.name.resources.DraftSubmissionStateNameResource', 'next_states', null=True)
class Meta:
queryset = DraftSubmissionStateName.objects.all()
serializer = api.Serializer()
#resource_name = 'draftsubmissionstatename'
filtering = {
"slug": ALL,
@ -91,6 +97,7 @@ api.name.register(DraftSubmissionStateNameResource())
class DocTypeNameResource(ModelResource):
class Meta:
queryset = DocTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'doctypename'
filtering = {
"slug": ALL,
@ -104,6 +111,7 @@ api.name.register(DocTypeNameResource())
class RoleNameResource(ModelResource):
class Meta:
queryset = RoleName.objects.all()
serializer = api.Serializer()
#resource_name = 'rolename'
filtering = {
"slug": ALL,
@ -117,6 +125,7 @@ api.name.register(RoleNameResource())
class StdLevelNameResource(ModelResource):
class Meta:
queryset = StdLevelName.objects.all()
serializer = api.Serializer()
#resource_name = 'stdlevelname'
filtering = {
"slug": ALL,
@ -130,6 +139,7 @@ api.name.register(StdLevelNameResource())
class GroupTypeNameResource(ModelResource):
class Meta:
queryset = GroupTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'grouptypename'
filtering = {
"slug": ALL,
@ -143,6 +153,7 @@ api.name.register(GroupTypeNameResource())
class GroupMilestoneStateNameResource(ModelResource):
class Meta:
queryset = GroupMilestoneStateName.objects.all()
serializer = api.Serializer()
#resource_name = 'groupmilestonestatename'
filtering = {
"slug": ALL,
@ -156,6 +167,7 @@ api.name.register(GroupMilestoneStateNameResource())
class SessionStatusNameResource(ModelResource):
class Meta:
queryset = SessionStatusName.objects.all()
serializer = api.Serializer()
#resource_name = 'sessionstatusname'
filtering = {
"slug": ALL,
@ -169,6 +181,7 @@ api.name.register(SessionStatusNameResource())
class DocReminderTypeNameResource(ModelResource):
class Meta:
queryset = DocReminderTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'docremindertypename'
filtering = {
"slug": ALL,
@ -182,6 +195,7 @@ api.name.register(DocReminderTypeNameResource())
class ConstraintNameResource(ModelResource):
class Meta:
queryset = ConstraintName.objects.all()
serializer = api.Serializer()
#resource_name = 'constraintname'
filtering = {
"slug": ALL,
@ -196,6 +210,7 @@ api.name.register(ConstraintNameResource())
class MeetingTypeNameResource(ModelResource):
class Meta:
queryset = MeetingTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'meetingtypename'
filtering = {
"slug": ALL,
@ -209,6 +224,7 @@ api.name.register(MeetingTypeNameResource())
class DocRelationshipNameResource(ModelResource):
class Meta:
queryset = DocRelationshipName.objects.all()
serializer = api.Serializer()
#resource_name = 'docrelationshipname'
filtering = {
"slug": ALL,
@ -223,6 +239,7 @@ api.name.register(DocRelationshipNameResource())
class RoomResourceNameResource(ModelResource):
class Meta:
queryset = RoomResourceName.objects.all()
serializer = api.Serializer()
resource_name = 'roomresourcename' # Needed because tastypie otherwise removes 'resource' from the name
filtering = {
"slug": ALL,
@ -236,6 +253,7 @@ api.name.register(RoomResourceNameResource())
class FeedbackTypeNameResource(ModelResource):
class Meta:
queryset = FeedbackTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'feedbacktypename'
filtering = {
"slug": ALL,
@ -249,6 +267,7 @@ api.name.register(FeedbackTypeNameResource())
class StreamNameResource(ModelResource):
class Meta:
queryset = StreamName.objects.all()
serializer = api.Serializer()
#resource_name = 'streamname'
filtering = {
"slug": ALL,
@ -262,6 +281,7 @@ api.name.register(StreamNameResource())
class BallotPositionNameResource(ModelResource):
class Meta:
queryset = BallotPositionName.objects.all()
serializer = api.Serializer()
#resource_name = 'ballotpositionname'
filtering = {
"slug": ALL,
@ -276,6 +296,7 @@ api.name.register(BallotPositionNameResource())
class DBTemplateTypeNameResource(ModelResource):
class Meta:
queryset = DBTemplateTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'dbtemplatetypename'
filtering = {
"slug": ALL,
@ -289,6 +310,7 @@ api.name.register(DBTemplateTypeNameResource())
class NomineePositionStateNameResource(ModelResource):
class Meta:
queryset = NomineePositionStateName.objects.all()
serializer = api.Serializer()
#resource_name = 'nomineepositionstatename'
filtering = {
"slug": ALL,
@ -304,6 +326,7 @@ api.name.register(NomineePositionStateNameResource())
class IprDisclosureStateNameResource(ModelResource):
class Meta:
queryset = IprDisclosureStateName.objects.all()
serializer = api.Serializer()
#resource_name = 'iprdisclosurestatename'
filtering = {
"slug": ALL,
@ -317,6 +340,7 @@ api.name.register(IprDisclosureStateNameResource())
class IprEventTypeNameResource(ModelResource):
class Meta:
queryset = IprEventTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'ipreventtypename'
filtering = {
"slug": ALL,
@ -330,6 +354,7 @@ api.name.register(IprEventTypeNameResource())
class IprLicenseTypeNameResource(ModelResource):
class Meta:
queryset = IprLicenseTypeName.objects.all()
serializer = api.Serializer()
#resource_name = 'iprlicensetypename'
filtering = {
"slug": ALL,

View file

@ -13,6 +13,7 @@ class NomComResource(ModelResource):
group = ToOneField(GroupResource, 'group')
class Meta:
queryset = NomCom.objects.all()
serializer = api.Serializer()
#resource_name = 'nomcom'
filtering = {
"id": ALL,
@ -33,6 +34,7 @@ class PositionResource(ModelResource):
incumbent = ToOneField(EmailResource, 'incumbent', null=True)
class Meta:
queryset = Position.objects.all()
serializer = api.Serializer()
#resource_name = 'position'
filtering = {
"id": ALL,
@ -54,6 +56,7 @@ class NomineeResource(ModelResource):
nominee_position = ToManyField(PositionResource, 'nominee_position', null=True)
class Meta:
queryset = Nominee.objects.all()
serializer = api.Serializer()
#resource_name = 'nominee'
filtering = {
"id": ALL,
@ -68,6 +71,7 @@ class ReminderDatesResource(ModelResource):
nomcom = ToOneField(NomComResource, 'nomcom')
class Meta:
queryset = ReminderDates.objects.all()
serializer = api.Serializer()
#resource_name = 'reminderdates'
filtering = {
"id": ALL,
@ -83,6 +87,7 @@ class NomineePositionResource(ModelResource):
state = ToOneField(NomineePositionStateNameResource, 'state')
class Meta:
queryset = NomineePosition.objects.all()
serializer = api.Serializer()
#resource_name = 'nomineeposition'
filtering = {
"id": ALL,
@ -103,6 +108,7 @@ class FeedbackResource(ModelResource):
nominees = ToManyField(NomineeResource, 'nominees', null=True)
class Meta:
queryset = Feedback.objects.all()
serializer = api.Serializer()
#resource_name = 'feedback'
filtering = {
"id": ALL,
@ -126,6 +132,7 @@ class NominationResource(ModelResource):
user = ToOneField(UserResource, 'user')
class Meta:
queryset = Nomination.objects.all()
serializer = api.Serializer()
#resource_name = 'nomination'
filtering = {
"id": ALL,

View file

@ -13,6 +13,7 @@ class PersonResource(ModelResource):
user = ToOneField(UserResource, 'user', null=True)
class Meta:
queryset = Person.objects.all()
serializer = api.Serializer()
#resource_name = 'person'
filtering = {
"id": ALL,
@ -30,6 +31,7 @@ class EmailResource(ModelResource):
person = ToOneField(PersonResource, 'person', null=True)
class Meta:
queryset = Email.objects.all()
serializer = api.Serializer()
#resource_name = 'email'
filtering = {
"address": ALL,
@ -43,6 +45,7 @@ class AliasResource(ModelResource):
person = ToOneField(PersonResource, 'person')
class Meta:
queryset = Alias.objects.all()
serializer = api.Serializer()
#resource_name = 'alias'
filtering = {
"id": ALL,
@ -57,6 +60,7 @@ class PersonHistoryResource(ModelResource):
user = ToOneField(UserResource, 'user', null=True)
class Meta:
queryset = PersonHistory.objects.all()
serializer = api.Serializer()
#resource_name = 'personhistory'
filtering = {
"id": ALL,

View file

@ -11,6 +11,7 @@ from ietf.redirects.models import * # pyflakes:ignore
class RedirectResource(ModelResource):
class Meta:
queryset = Redirect.objects.all()
serializer = api.Serializer()
#resource_name = 'redirect'
filtering = {
"id": ALL,
@ -24,6 +25,7 @@ api.redirects.register(RedirectResource())
class SuffixResource(ModelResource):
class Meta:
queryset = Suffix.objects.all()
serializer = api.Serializer()
#resource_name = 'suffix'
filtering = {
"id": ALL,
@ -37,6 +39,7 @@ class CommandResource(ModelResource):
suffix = ToOneField(SuffixResource, 'suffix', null=True)
class Meta:
queryset = Command.objects.all()
serializer = api.Serializer()
#resource_name = 'command'
filtering = {
"id": ALL,

View file

@ -13,6 +13,7 @@ class PreapprovalResource(ModelResource):
by = ToOneField(PersonResource, 'by')
class Meta:
queryset = Preapproval.objects.all()
serializer = api.Serializer()
#resource_name = 'preapproval'
filtering = {
"id": ALL,
@ -29,6 +30,7 @@ class SubmissionResource(ModelResource):
group = ToOneField(GroupResource, 'group', null=True)
class Meta:
queryset = Submission.objects.all()
serializer = api.Serializer()
#resource_name = 'submission'
filtering = {
"id": ALL,
@ -61,6 +63,7 @@ class SubmissionEventResource(ModelResource):
by = ToOneField(PersonResource, 'by', null=True)
class Meta:
queryset = SubmissionEvent.objects.all()
serializer = api.Serializer()
#resource_name = 'submissionevent'
filtering = {
"id": ALL,

View file

@ -5,14 +5,18 @@ from tastypie.fields import CharField
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
from ietf import api
class UserResource(ModelResource):
username = CharField()
class Meta:
queryset = User.objects.all()
serializer = api.Serializer()
class ContentTypeResource(ModelResource):
username = CharField()
class Meta:
queryset = ContentType.objects.all()
serializer = api.Serializer()