From 41435ed0777fa36850eb82fc48355758b5fe7b4b Mon Sep 17 00:00:00 2001 From: Paal Braathen Date: Wed, 26 Jun 2013 19:37:39 +0200 Subject: [PATCH] Added institution endpoint --- .gitignore | 2 +- dusken/admin.py | 6 +++++- dusken/api/institution.py | 25 +++++++++++++++++++++++++ dusken/models.py | 4 ++++ dusken/urls.py | 2 ++ 5 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 dusken/api/institution.py diff --git a/.gitignore b/.gitignore index c6a6f48..a789335 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ settings.py *.bak build docs/_build - +db.sqlite3 diff --git a/dusken/admin.py b/dusken/admin.py index 958a432..9e0e799 100644 --- a/dusken/admin.py +++ b/dusken/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from dusken.models import Member +from dusken.models import Member, Institution class MemberAdmin(admin.ModelAdmin): fieldsets = [ @@ -8,4 +8,8 @@ class MemberAdmin(admin.ModelAdmin): ('User data', {'fields' : ['phone_number', 'date_of_birth', 'address', 'place_of_study']}), ] +class InstitutionAdmin(admin.ModelAdmin): + pass + admin.site.register(Member, MemberAdmin) +admin.site.register(Institution, InstitutionAdmin) diff --git a/dusken/api/institution.py b/dusken/api/institution.py new file mode 100644 index 0000000..f42e8b2 --- /dev/null +++ b/dusken/api/institution.py @@ -0,0 +1,25 @@ +from django.contrib.auth.models import User +from django.conf.urls import url +from django.shortcuts import get_object_or_404 +from tastypie import fields +from tastypie.authorization import Authorization +from tastypie.exceptions import ImmediateHttpResponse +from tastypie.http import HttpForbidden, HttpNoContent, HttpResponse +from tastypie.resources import ModelResource, ALL +from dusken.models import * +from dusken.api.membersbygroup import MembersByGroupResource +from dusken.api.groupsbymember import GroupsByMemberResource + + +class InstitutionResource(ModelResource): + + class Meta: + queryset = Institution.objects.all() + resource_name = 'institution' + list_allowed_methods = [ 'get', 'post' ] + detail_allowed_methods = [ 'get', 'patch', 'delete' ] + authorization = Authorization() # TODO: for dev (VERY INSECURE) + filtering = { + 'name' : [ 'exact' ], + } + diff --git a/dusken/models.py b/dusken/models.py index dee0f1d..73ba747 100644 --- a/dusken/models.py +++ b/dusken/models.py @@ -15,7 +15,11 @@ class Address(models.Model): updated = models.DateTimeField(auto_now=True) class Institution(models.Model): + def __unicode__(self): + return self.short_name +' - ' +self.name + name = models.CharField(max_length=255) + short_name = models.CharField(max_length=16) created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) diff --git a/dusken/urls.py b/dusken/urls.py index 167049c..5a3d667 100644 --- a/dusken/urls.py +++ b/dusken/urls.py @@ -8,6 +8,7 @@ from dusken.api.membership import MembershipResource from dusken.api.group import GroupResource from dusken.api.groupsbymember import GroupsByMemberResource from dusken.api.membersbygroup import MembersByGroupResource +from dusken.api.institution import InstitutionResource admin.autodiscover() @@ -17,6 +18,7 @@ v1_api.register(MembershipResource()) v1_api.register(GroupResource()) v1_api.register(GroupsByMemberResource()) v1_api.register(MembersByGroupResource()) +v1_api.register(InstitutionResource()) urlpatterns = patterns('', url(r'^admin/doc/', include('django.contrib.admindocs.urls')),