Яндекс деньги

feature/fix_generate_pass
Andrey 8 years ago
parent dc9f53ab36
commit 218bae2877
  1. 3
      journals/default_threads.py
  2. 9
      journals/serilizers.py
  3. 1
      journals/urls.py
  4. 24
      journals/views.py

@ -78,11 +78,12 @@ def main_threads():
st_tch.parent.add(support_thread)
for i in get_user_model().objects.all():
Thread.objects.create(
thread = Thread.objects.create(
key="""user_%s""" % i.id,
text="""Приватный тред пользователя %s""" % i.email,
is_recurse=True,
)
thread.subscribers.add(i)
if __name__ == '__main__':

@ -7,20 +7,25 @@ class JournalSerializer(serializers.ModelSerializer):
class Meta:
model = Journal
exclude = ('content_type', 'object_id')
exclude = ('content_type', 'object_id',)
class ThreadDetailSerializer(serializers.ModelSerializer):
journals = serializers.SerializerMethodField()
children = serializers.SerializerMethodField()
class Meta:
model = Thread
fields = ('journals', 'id', 'text')
fields = ('journals', 'id', 'text', 'children', 'key',)
@staticmethod
def get_journals(self):
return [JournalSerializer(i).data for i in self.journal_set.all()]
@staticmethod
def get_children(self):
return [ThreadDetailSerializer(i).data for i in self.thread_set.all()]
class ThreadAdminSerializer(serializers.ModelSerializer):
count_children = serializers.SerializerMethodField()

@ -3,6 +3,5 @@ from journals import views as views
urlpatterns = [
url(r'thread/$', views.ThreadAdminListView.as_view()),
url(r'thread/teacher/$', views.TeacherThreadListView.as_view()),
url(r'thread/(?P<key>[-\w]+)/$', views.ThreadDetailView.as_view()),
]

@ -5,7 +5,7 @@ from django.db.models import Q
from lms.global_decorators import transaction_decorator
from journals.models import Thread
from journals.serilizers import ThreadUserSerializer, ThreadAdminSerializer
from journals.serilizers import ThreadDetailSerializer, ThreadAdminSerializer
class ThreadAdminListView(APIView):
@ -35,19 +35,13 @@ class ThreadDetailView(APIView):
except Thread.DoesNotExist:
return Response("Thread doesn't exist.", self.status_code,)
def get(self, request, key):
@staticmethod
def get(request, key):
try:
return Response(ThreadUserSerializer(Thread.objects.get(key=key)).data, self.status_code)
except Thread.DoesNotExist:
return Response("Thread not found", status=404)
class TeacherThreadListView(APIView):
renderer_classes = (JSONRenderer,)
thread = Thread.objects.get(key=key)
if thread.check_perm(request.user):
return Response(ThreadDetailSerializer(thread).data, status=200)
return Response("permission denied", status=403)
@transaction_decorator
def get(self, request):
if not request.user.is_authenticated and not 'teachers' in request.user.groups:
return Response("Permission denied", status=403)
threads = Thread.objects.filter(Q(subscribers=request.user) | Q(groups__user=request.user))
return Response([ThreadUserSerializer(i).data for i in threads])
except Thread.DoesNotExist:
return Response("Thread not found", status=404)
Loading…
Cancel
Save