def test_create_announcement_from_past_date_auto_publish(self): draft_announcement = baker.make( Announcement, datetime_released=timezone.now() - timedelta(days=3), auto_publish=True, ) form = AnnouncementForm(data=model_to_dict(draft_announcement)) self.assertFalse(form.is_valid())
def new_announcement(request): form = AnnouncementForm(request.POST) if not form.is_valid(): return JSONResponse({'success': False, 'errors': form.errors}) announcement = form.save(commit=False) announcement.owner_band = Band(id=request.POST.get('band_id')) announcement.save() print EquipamentType(id=5) announcement.instruments = [EquipamentType(id=i) for i in request.POST.getlist('instruments')] return JSONResponse({ "success": True })
def create_for_locale(request): """An ajax view to create a new announcement for the current locale.""" user = request.user locale = Locale.objects.get(locale=request.LANGUAGE_CODE) if not user_can_announce(user, locale): return HttpResponseForbidden() form = AnnouncementForm(request.POST) if form.is_valid(): a = Announcement(creator=user, locale=locale, **form.cleaned_data) a.save() return HttpResponse(json.dumps({'id': a.id}), content_type="application/json") else: return HttpResponse(json.dumps(form.errors), status=400, content_type="application/json")
def put(self, request): try: body = request.body.decode('utf-8') body = json.loads(body) except json.decoder.JSONDecodeError as ex: return JsonResponse({ 'error': str(ex) }, status=400) form = AnnouncementForm(body) if not form.is_valid(): return JsonResponse(dict(form.errors.items()), status=422) Announcement.objects.create(**{ 'content': form.cleaned_data['content'], }) return JsonResponse({})