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 render_readouts(request, readouts, template, locale=None, extra_data=None, product=None): """Render a readouts, possibly with overview page. Use the given template, pass the template the given readouts, limit the considered data to the given locale, and pass along anything in the `extra_data` dict to the template in addition to the standard data. """ current_locale = locale or request.LANGUAGE_CODE on_default_locale = request.LANGUAGE_CODE == settings.WIKI_DEFAULT_LANGUAGE data = { 'readouts': SortedDict((slug, class_(request, locale=locale, product=product)) for slug, class_ in readouts.iteritems() if class_.should_show_to(request)), 'default_locale': settings.WIKI_DEFAULT_LANGUAGE, 'default_locale_name': LOCALES[settings.WIKI_DEFAULT_LANGUAGE].native, 'current_locale': current_locale, 'current_locale_name': LOCALES[current_locale].native, 'request_locale_name': LOCALES[request.LANGUAGE_CODE].native, 'is_watching_default_approved': ApproveRevisionInLocaleEvent.is_notifying( request.user, locale=settings.WIKI_DEFAULT_LANGUAGE), 'is_watching_other_approved': None if on_default_locale else ApproveRevisionInLocaleEvent.is_notifying( request.user, locale=request.LANGUAGE_CODE), 'is_watching_default_locale': ReviewableRevisionInLocaleEvent.is_notifying( request.user, locale=settings.WIKI_DEFAULT_LANGUAGE), 'is_watching_other_locale': None if on_default_locale else ReviewableRevisionInLocaleEvent.is_notifying( request.user, locale=request.LANGUAGE_CODE), 'is_watching_default_ready': ReadyRevisionEvent.is_notifying(request.user), 'on_default_locale': on_default_locale, 'announce_form': AnnouncementForm(), 'announcements': Announcement.get_for_locale_name(current_locale), 'product': product, 'products': Product.objects.filter(visible=True), } if extra_data: data.update(extra_data) return render(request, 'dashboards/' + template, data)
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({})
def test_form_save(self): form = AnnouncementForm(data={'text': 'Website Down'}) new_announcement = form.save() self.assertEqual(new_announcement, Announcement.objects.all()[0])