diff --git a/src/openbadge/urls.py b/src/openbadge/urls.py index fca68f3..c43189b 100644 --- a/src/openbadge/urls.py +++ b/src/openbadge/urls.py @@ -1,24 +1,14 @@ -from django.conf.urls import include, url, patterns -from django.conf import settings -from django.conf.urls.static import static +from django.conf.urls import include, url from . import views from django.views.generic.base import TemplateView -from django.conf import settings -from django.conf.urls.static import static - urlpatterns = [ + # APP URLs. DO NOT TOUCH THESE url(r'^get_group/(?P\w+)/$', views.get_group, name='get_group'), url(r'^get_finished_meetings/(?P\w+)/$', views.get_finished_meetings, name='get_finished_meetings'), url(r'^log_data/$', views.log_data, name='log_data'), + # Reports url(r'^internal_report/$', views.internal_report, name='internal_report'), url(r'^weekly_group_report/(?P\w+)/(?P[0-9]+)$', views.weekly_group_report, name='weekly_group_report'), -] - -## debug stuff to serve static media -if settings.DEBUG: - urlpatterns += patterns('', - (r'^media/(?P.*)$', 'django.views.static.serve', - {'document_root': settings.MEDIA_ROOT}), - ) +] \ No newline at end of file diff --git a/src/openbadge/views.py b/src/openbadge/views.py index cf32a7d..9645599 100644 --- a/src/openbadge/views.py +++ b/src/openbadge/views.py @@ -19,11 +19,11 @@ import analysis from django.conf import settings -from createGraph import individualGraph, aggregateGraph from newGraph import groupStatGraph - from django.contrib.auth.decorators import user_passes_test +TIME_FORMAT = "%Y-%m-%d %H:%M:%S" + def json_response(**kwargs): return HttpResponse(simplejson.dumps(kwargs)) @@ -51,6 +51,7 @@ def wrapper(request, *args, **kwargs): return wrapper return decorator +## APP views ########################################################################################################### @app_view @api_view(['POST']) @@ -109,6 +110,38 @@ def log_data(request): return json_response(success=True) +@app_view +@api_view(['GET']) +def get_group(request, group_key): + + if not group_key: + return json_response(success=False) + + try: + group = StudyGroup.objects.prefetch_related("members", "visualization_ranges").get(key=group_key) + except StudyGroup.DoesNotExist: + return json_response(success=False) + + return json_response(success=True, group=group.to_dict()) + + +@app_view +@api_view(['GET']) +def get_finished_meetings(request, group_key): + + if not group_key: + raise Http404() + + try: + group = StudyGroup.objects.prefetch_related("meetings").get(key=group_key) + except StudyGroup.DoesNotExist: + raise Http404() + + finished_meetings = [meeting.uuid for meeting in group.meetings.filter(is_complete=True).all()] + + return json_response(success=True, finished_meetings=finished_meetings) + +## Report views ######################################################################################################## #@user_passes_test(lambda u: u.is_superuser) def weekly_group_report(request, group_key, week_num): diff --git a/src/project/urls.py b/src/project/urls.py index 3ba0ac3..4157b4d 100644 --- a/src/project/urls.py +++ b/src/project/urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import include, url, patterns +from django.conf.urls import include, url from django.contrib import admin from django.conf import settings from django.conf.urls.static import static @@ -7,6 +7,7 @@ urlpatterns = [ url(r'^grappelli/', include('grappelli.urls')), url(r'^admin/', include(admin.site.urls)), + url(r'', include('openbadge.urls',namespace='openbadge')), ]