def announcement(visible_dates=True, **kwargs): # Pass in visible_dates=False to hide the announcement. if visible_dates: defaults = {'show_after': datetime.now() - timedelta(days=2)} else: defaults = { 'show_after': datetime.now() - timedelta(days=4), 'show_until': datetime.now() - timedelta(days=2) } defaults['content'] = ("*crackles* Captain's log, stardate 43124.5 " "We are doomed.") if 'creator' not in kwargs: defaults['creator'] = user(save=True) defaults.update(kwargs) return Announcement(**defaults)
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")