def form_valid(self, form): super().form_valid(form) obj = form.instance if form.cleaned_data['subscribe']: sub = Subscription( user=self.request.user, object_id=obj.pk, content_type=ContentType.objects.get_for_model(obj)) sub.save() return super(NotifiableViewMixin, self).form_valid(form)
def post(self, request): errors, created = Subscription.sync_user_subscriptions(self.request.user, request.data) if len(errors): return Response({ 'status': 400, 'data': 'Could not create one or more subscription(s), aborting' }) return Response({ 'data': 'Success' })
def post(self, request): errors = Subscription.del_user_subscriptions(self.request.user, request.data) if len(errors): return Response({ 'status': 400, 'data': 'Could not remove subscription, aborting' }) return Response({'data': 'Success'})
def post(self, request): # do not delete previous ones, add only 1 subscription errors, created = Subscription.sync_user_subscriptions(self.request.user, request.data, False) if len(errors): return Response({ 'status': 400, 'data': 'Could not add subscription, aborting' }) return Response({'data': 'Success'})
def handle_post(self, request, *args, **kwargs): user = self.get_authenticated_user(request) if not user: return unauthorized() body = json.loads(request.body.decode('utf-8')) errors, created = Subscription.sync_user_subscriptions(user, body) if len(errors): return JsonResponse( { 'statusCode': 400, 'error_message': 'Could not create one or more subscription(s), aborting', 'errors': errors }, status=400) else: return JsonResponse({'statusCode': 200, 'created': len(created)})
def subscriptions(request): response = HttpResponse(content_type="text/csv") response["Content-Disposition"] = "attachment; filename=%s.csv" % "subscriptions" writer = csv.writer(response) Subscription.create_report(writer) return response