Example #1
0
 def get(self, request):
     try:
         User.test_authenticated(Context.from_request(request))
     except LoginRequired:
         return redirect('hub')
     return TemplateResponse(request, 'profile.html', {
         'profile_required': User.profile_required,
     })
Example #2
0
 def post(self, request):
     context = Context.from_request(request)
     try:
         User.test_authenticated(context)
     except LoginRequired:
         return redirect('hub')
     for pk in request.POST.getlist('terms'):
         Terms.get(context, pk=pk).agree(request.user.pk)
     return redirect('hub')
Example #3
0
 def get_enabled(cls, context):
     User.test_authenticated(context)
     Terms.test_agreed_enabled(context)
     User.test_profile(context)
     try:
         User.test_permission(context, 'challenge.full', 'challenge.view')
     except PermissionRequired:
         Trigger.test_can_view_challenges(context)
     queryset = models.Challenge.objects.filter(enabled=True)
     return [cls(context, obj) for obj in queryset]
Example #4
0
 def get(cls, context, pk):
     queryset = models.Challenge.objects.all()
     try:
         User.test_permission(context, 'challenge.full', 'challenge.view')
     except PermissionRequired:
         User.test_authenticated(context)
         Terms.test_agreed_enabled(context)
         User.test_profile(context)
         Trigger.test_can_view_challenges(context)
         queryset = queryset.filter(enabled=True)
     try:
         return cls(context, queryset.get(pk=pk))
     except models.Challenge.DoesNotExist:
         raise NotFound('题目不存在')