feature/fix_generate_pass
Andrey 8 years ago
parent 96d5a38aee
commit 1bcdfb4f92
  1. 2
      access/urls.py
  2. 22
      access/views.py
  3. 4
      courses/views.py
  4. 3
      maps/models.py

@ -3,7 +3,7 @@ from access import views
urlpatterns = [
url(r'teachers/$', views.TeacherListView.as_view()),
url(r'info/$', views.InfoUserView.as_view()),
url(r'detail/$', views.DetailUserView.as_view()),
url(r'detail/([0-9]{1,99})/$', views.DetailUserView.as_view()),
url(r'guard/(?P<pk>[0-9]{1,99})/(?P<page>.+)/$', views.UserGuardView.as_view()),
url(r'find/$', views.FindUserView.as_view()),

@ -31,16 +31,6 @@ class CheckUserView(APIView):
return Response(False, status=self.status_code)
class InfoUserView(APIView):
renderer_classes = (JSONRenderer,)
status_code = 200
def get(self, request):
if request.user.is_authenticated():
return Response(UserSelfSerializer(request.user).data, status=self.status_code)
return Response('anonymous', status=self.status_code)
class FindUserView(APIView):
renderer_classes = (JSONRenderer,)
status_code = 200
@ -77,8 +67,16 @@ class DetailUserView(APIView):
permission_classes = (IsAuthenticated,)
@staticmethod
def get(request, pk):
if request.user.is_superuser or request.user.is_staff or request.user.id == int(pk):
def get(request, pk=None):
if pk is None:
if request.user.is_authenticated():
serialized_user = UserSelfSerializer(request.user).data
serialized_user['is_i'] = True
return Response(serialized_user, status=200)
return Response('anonymous', status=200)
if request.user.is_authenticated() and request.user.is_superuser \
or request.user.is_staff or request.user.id == int(pk):
try:
user = get_user_model().objects.get(id=pk)

@ -86,7 +86,9 @@ class VertexDetail(APIView):
progress = vertex.course.progress_set.filter(user=request.user)
try:
if progress.exists():
res['next'] = MiniVertexSerializer(vertex.get_next(progress[0].get_template())).data
next_vertex = vertex.get_next(progress[0].get_template())
if next_vertex:
res['next'] = MiniVertexSerializer(next_vertex).data
res['is_in_progress'] = vertex in progress[0].get_objects_in_progress()
else:
res['next'] = MiniVertexSerializer(vertex.get_next(vertex.course.route)).data

@ -43,7 +43,8 @@ class CourseMap(models.Model):
def get_next(self, vertex):
pivot = self.pivotvertex_set.get(vertex=vertex)
return self.pivotvertex_set.filter(sort__gt=pivot.sort).exclude(vertex__content_type__model='topic').first().vertex
pivots = self.pivotvertex_set.filter(sort__gt=pivot.sort).exclude(vertex__content_type__model='topic')
return pivots.first().vertex if pivots.exists() else None
@transaction_decorator
def add_vertex(self, vertex, sort):

Loading…
Cancel
Save