Skip to content

Commit

Permalink
Merge pull request #598 from onaio/592-project-endpoint-refactor
Browse files Browse the repository at this point in the history
592 project endpoint refactor
  • Loading branch information
pld committed Oct 6, 2014
2 parents d0306d5 + fd9b272 commit 190f2d6
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 0 deletions.
2 changes: 2 additions & 0 deletions onadata/apps/api/tests/viewsets/test_abstract_viewset.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ def _project_create(self, project_data={}, merge=True):
data['url'] = 'http://testserver/api/v1/projects/%s'\
% self.project.pk
self.assertDictContainsSubset(data, response.data)

request.user = self.user
self.project_data = ProjectSerializer(
self.project, context={'request': request}).data

Expand Down
6 changes: 6 additions & 0 deletions onadata/apps/api/tests/viewsets/test_connect_viewset.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
TestAbstractViewSet
from onadata.apps.api.viewsets.connect_viewset import ConnectViewSet
from onadata.apps.api.viewsets.project_viewset import ProjectViewSet

from onadata.libs.authentication import DigestAuthentication
from onadata.libs.serializers.project_serializer import ProjectSerializer


class TestConnectViewSet(TestAbstractViewSet):
Expand Down Expand Up @@ -56,6 +58,10 @@ def test_get_starred_projects(self):
response = view(request, user=self.user)

self.assertEqual(response.status_code, 200)

request.user = self.user
self.project_data = ProjectSerializer(
self.project, context={'request': request}).data
self.assertEqual(response.data, [self.project_data])

def test_user_list_with_digest(self):
Expand Down
4 changes: 4 additions & 0 deletions onadata/apps/api/tests/viewsets/test_project_viewset.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ def test_projects_tags(self):

# check filter by tag
request = self.factory.get('/', data={"tags": "hello"}, **self.extra)

request.user = self.user
self.project_data = ProjectSerializer(
self.project, context={'request': request}).data
response = list_view(request, pk=project_id)
Expand Down Expand Up @@ -126,6 +128,7 @@ def test_publish_xls_form_to_project(self):
def test_num_datasets(self):
self._publish_xls_form_to_project()
request = self.factory.post('/', data={}, **self.extra)
request.user = self.user
self.project_data = ProjectSerializer(
self.project, context={'request': request}).data
self.assertEqual(self.project_data['num_datasets'], 1)
Expand All @@ -134,6 +137,7 @@ def test_last_submission_date(self):
self._publish_xls_form_to_project()
self._make_submissions()
request = self.factory.post('/', data={}, **self.extra)
request.user = self.user
self.project_data = ProjectSerializer(
self.project, context={'request': request}).data
date_created = self.xform.instances.order_by(
Expand Down
10 changes: 10 additions & 0 deletions onadata/libs/serializers/project_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class ProjectSerializer(serializers.HyperlinkedModelSerializer):
lookup_field='username',
read_only=True)
metadata = JsonField(source='metadata', required=False)
starred = serializers.SerializerMethodField('is_starred_project')
users = serializers.SerializerMethodField('get_project_permissions')
forms = serializers.SerializerMethodField('get_project_forms')
public = BooleanField(
Expand Down Expand Up @@ -93,3 +94,12 @@ def get_last_submission_date(self, obj):
flat=True)

return last_submission and last_submission[0]

def is_starred_project(self, obj):
request = self.context['request']
user = request.user
user_stars = obj.user_stars.all()
if user in user_stars:
return True

return False

0 comments on commit 190f2d6

Please sign in to comment.