def delete_shoutbox_entry(request, entry_id): """Render form to delete a shoutbox entry. Available template variables: `form`: form object with all required fields :Template name: ``shoutbox_post.html`` :URL endpoint: ``shoutbox/post`` """ entry = ShoutboxEntry.query.get(entry_id) if entry is None: raise NotFound() form = DeleteShoutboxEntryForm(entry) assert_privilege(SHOUTBOX_MANAGE) if request.method == 'POST': if 'cancel' in request.form: return form.redirect('core/index') if form.validate(request.form): form.add_invalid_redirect_target('shoutbox/delete', entry_id=entry.id) form.delete_entry() db.commit() # as this affects pretty much all visible pages, we flush cache here request.app.cache.clear() return form.redirect('core/index') return render_response('shoutbox_delete.html', form=form.as_widget())
def make_shoutbox_entry(request): """Render form to make a shoutbox entry. Available template variables: `form`: form object with all required fields `widgetoptions`: redirected widgetoptions to hide post button below entries :Template name: ``shoutbox_post.html`` :URL endpoint: ``shoutbox/post`` """ form = ShoutboxEntryForm() if request.method == 'POST': if request.user.is_somebody: form.disable_author() if form.validate(request.form): entry = form.make_entry() db.commit() # as this affects pretty much all visible pages, we flush cache here request.app.cache.clear() target = get_redirect_target() return form.redirect(target if target is not None else 'core/index') return render_response('shoutbox_post.html', form=form.as_widget(), widgetoptions=['hide_shoutbox_note'])
def user_deleted_memberships(sender, **kwds): """Delete memberships of a user that will be deleted""" user = kwds['user'] memberships = SquadMember.query.filter_by(user=user).all() for membership in memberships: db.delete(membership) db.commit()
def check_unread(user, topic, date=None): """Marks posts of given topic as read up until date if given""" if user is None: user = get_request().user if isinstance(user, AnonymousUser): return global_lastread = GlobalLastRead.query.get(user.id) if not global_lastread: GlobalLastRead(user) db.commit() return if global_lastread.date > topic.modification_date: return local_lastread = LocalLastRead.query.get((user.id,topic.id)) if not local_lastread: LocalLastRead(user,topic,date) db.commit() return if local_lastread.date >= topic.modification_date: return local_lastread.date = date db.commit() return