def edit_single(id): message = Message.query.filter_by(id=id).first() form = MessageForm() if 'email' not in session: flash('Login to Modify this Note', 'danger') return redirect('/login') usr_in_ses = User.query.filter_by(email=session['email']).first() if not usr_in_ses.admin: if usr_in_ses.email != message.owner.email: flash('Unauthorized to Edit this Note', 'danger') return redirect(f'/messages/single/{message.id}') if form.validate_on_submit(): message.title = form.title.data message.content = form.content.data message.category = form.category.data message.shift = form.shift.data message.pub_date = datetime.utcnow() message.status = 0 db.session.commit() flash('Successfully updated note', 'success') return redirect('/messages') return render_template('messages/edit.html', title="Edit", form=form, message=message)
def new_message(request, template): """Send a new private message.""" to = request.GET.get('to') if to: try: User.objects.get(username=to) except User.DoesNotExist: contrib_messages.add_message( request, contrib_messages.ERROR, _('Invalid username provided. Enter a new username below.')) return HttpResponseRedirect(reverse('messages.new')) form = MessageForm(request.POST or None, initial={'to': to}) if request.method == 'POST' and form.is_valid(): send_message(form.cleaned_data['to'], form.cleaned_data['message'], request.user) if form.cleaned_data['in_reply_to']: irt = form.cleaned_data['in_reply_to'] try: m = InboxMessage.objects.get(pk=irt, to=request.user) m.update(replied=True) except InboxMessage.DoesNotExist: pass contrib_messages.add_message(request, contrib_messages.SUCCESS, _('Your message was sent!')) return HttpResponseRedirect(reverse('messages.inbox')) return render(request, template, {'form': form})
def search(): new_u = True if badge_urgent() else False new_g = True if badge_general() else False form = MessageForm() search_key = '' messages = [] data = Message.query.order_by( Message.pub_date.desc()).filter(Message.title != 'daily-task').all() if 'search_key' in request.args: search_key += request.args.get('search_key') for message in data: if search_key.lower() in message.content.lower(): if message not in messages: messages.append(message) if search_key.lower() in message.title.lower(): if message not in messages: messages.append(message) return render_template('messages/search-result.html', title="Search Result", messages=messages, form=form, new_g=new_g, new_u=new_u, search_key=search_key)
def newpost(): if 'email' not in session: flash('Login to Leave a Note', 'danger') return redirect('/login') form = MessageForm() owner = User.query.filter_by(email=session['email']).first() if form.validate_on_submit(): message = Message(title=form.title.data, content=form.content.data, category=form.category.data, shift=form.shift.data, owner=owner) db.session.add(message) db.session.commit() flash("Posted Note Successfully", 'success') return redirect('/messages')
def new_message(request): form = MessageForm(request.POST or None) if request.method == 'POST' and form.is_valid(): send_message(form.cleaned_data['to'], form.cleaned_data['message'], request.user) if form.cleaned_data['in_reply_to']: irt = form.cleaned_data['in_reply_to'] try: m = InboxMessage.objects.get(pk=irt, to=request.user) m.update(replied=True) except InboxMessage.DoesNotExist: pass contrib_messages.add_message(request, contrib_messages.SUCCESS, _('Your message was sent!')) return HttpResponseRedirect(reverse('messages.inbox')) return jingo.render(request, 'messages/new.html', {'form': form})
def messages_add(): """Add a message: Show form if GET. If valid, update message and redirect to user page. """ if not g.user: flash("Access unauthorized.", "danger") return redirect("/") form = MessageForm() if form.validate_on_submit(): msg = Message(text=form.text.data) g.user.messages.append(msg) db.session.commit() return redirect(f"/users/{g.user.id}") return render_template('messages/new.html', form=form)
def single(id): new_u = True if badge_urgent( ) else False # This is for the urgent note badge new_g = True if badge_general( ) else False # This is for the general note badge message = Message.query.filter_by(id=id).first() edit_form = MessageForm() edit_form.title.data = message.title edit_form.category.data = message.category edit_form.shift.data = message.shift edit_form.content.data = message.content add_form = MessageForm() return render_template('messages/single.html', title=message.title, message=message, edit_form=edit_form, add_form=add_form, new_g=new_g, new_u=new_u)
def messages(category): new_u = True if badge_urgent( ) else False # This is for the urgent note badge new_g = True if badge_general( ) else False # This is for the general note badge form = MessageForm() messages = message_query(category.lower()) return render_template('messages/messages.html', title=f"{category} Messages", messages=messages, mark="Mark Completed", new_g=new_g, new_u=new_u, form=form, category=category)
def mark_completion(id): new_u = True if badge_urgent( ) else False # This is for the urgent note badge new_g = True if badge_general( ) else False # This is for the general note badge form = MessageForm() completed_by = '' if request.method == 'POST': if 'email' not in session: flash('Login to Mark this Note', 'danger') return redirect('/login') message = Message.query.filter_by(id=id).first() user = User.query.filter_by(email=session['email']).first() if message.status == 1: message.status = 0 message.completed_by = '' db.session.commit() flash(f"{message.title} unmarked as complete by {user.name}", 'warning') return redirect('/messages/completed') else: message.status = 1 message.completed_by = user.name db.session.commit() completed_by = message.completed_by flash(f"{message.title} marked complete by {user.name}", 'success') return redirect('/messages') messages = message_query('completed') return render_template('messages/messages.html', title="Completed Messages", messages=messages, completed_by=completed_by, form=form, category='completed', new_g=new_g, new_u=new_u)
def new_message(request): user = request.user profile = Profile.objects.get(user=user) try: ganaderia = Ganaderia.objects.get(perfil=user) except ObjectDoesNotExist: return redirect(reverse('agrega_ganaderia_config')) number_message = Message.objects.filter(Q(receiver_id=user.id), Q(front=True), Q(read_at=False)).count() msg_complete = Message.objects.all().order_by('sent_at') date_now = datetime.datetime.today() if request.method == 'POST': form_message = MessageForm(request.POST) if form_message.is_valid(): form_message = form_message.save(commit=False) form_message.sender = profile form_message.sent_at = date_now form_message.read_at = False for i in msg_complete: if ((i.receiver_id == form_message.receiver_id) & (i.sender_id == form_message.sender_id)) | ((i.sender_id == form_message.receiver_id) & (i.receiver_id == form_message.sender_id)): i.front = False i.save() form_message.front = True form_message.save() number_message = number_messages(request, str(form_message.receiver_id)) data = serializers.serialize("json", User.objects.all()) ishout_client.emit( form_message.receiver_id, 'alertchannel', data = {'msg': data, 'number_messages': number_message,} ) return HttpResponseRedirect(reverse('messages_list')) # return redirect(reverse('messages_list')) else: form_message = MessageForm() profile_model = get_profile_model() ganaderia = Ganaderia.objects.get(perfil=user) receivers = profile_model.objects.get_visible_profiles(user).select_related().exclude(id=user.id).filter(ganaderia_perfil=ganaderia) return render_to_response('new_message.html', {'form': form_message, 'number_messages': number_message, 'receivers': receivers, }, context_instance=RequestContext(request))