def network(): form = SendMessageForm() nodes_choices = [(node.id, str(node)) for node in app.config['NETWORK'].nodes] form.source.choices = nodes_choices form.target.choices = nodes_choices result = None if form.validate_on_submit(): args = [form.source.data, form.target.data, form.message_size.data, form.packet_size.data] if form.virtual_circuit.data: result = app.config['NETWORK'].virtual_circuit(*args) elif form.datagram.data: result = app.config['NETWORK'].datagram(*args) return render_template('index.html', form=form, result=result)
def sending_msg(): form = SendMessageForm() if request.method == 'GET': return render_template('send_msg.html', title='Send message', form=form) elif request.method == 'POST': send_msg(sender=session['username'], receiver=request.form['receiver'], msg_text=request.form['msg']) return render_template('send_msg.html', title='Send message', form=form)
def admin_dashboard(): chargepoints = Chargingpoint.query.all() sessions = Session.query.filter_by(endtime = None) users = User.query.all() form = SendMessageForm() name = request.form.get('user', None) if name is not None: user = User.query.filter_by(id = form.user.data).first_or_404() print('test', file=sys.stderr) message = Message(recipient=user,body=form.text.data) db.session.add(message) db.session.commit() return redirect(url_for('admin_dashboard')) return render_template('dashboard.html', title='Dashboard', chargingpoints=chargepoints, sessions=sessions, users=users, form=form)
def show_draft(contract_id): msg_form = SendMessageForm() contract = db.session.query(Contract).join(Template).filter(Contract.id == contract_id).first_or_404() if msg_form.validate_on_submit(): m = DealMessage(contract_id=(contract.parent_id or contract.id), message=msg_form.message.data, user_id=current_user.id, timestamp=datetime.now()) db.session.add(m) db.session.commit() msg = Message(subject='Someone sent you a message', sender='*****@*****.**', recipients=[p.user.email for p in contract.party if p.user_id != current_user.id], html='<h1>New Message</h1><p>Please click <a href="' + url_for('show_draft', contract_id=contract_id, _external=True) + '">here</a> to view the message.</p>') mail.send(msg) msg_form.message.data = '' parties = db.session.query(Party).join(Contract).filter(Contract.id == contract_id).all() parent = None if contract.parent_id is not None: parent = db.session.query(Contract).join(Template).filter(Contract.id == contract.parent_id).first() activity_log = db.session.query(ActivityLog).filter(ActivityLog.contract_id.in_([contract.id, contract.parent_id])).all() deal_message = db.session.query(DealMessage).filter(DealMessage.contract_id.in_([contract.id, contract.parent_id])).all() timeline = [(a.timestamp, 'action', a.user.username, a.contract.memo, a.description) for a in activity_log] + [(m.timestamp, 'message', m.user.username, '[N/A]', m.message) for m in deal_message] return render_template('contract.html', msg_form=msg_form, contract=contract, parties=parties, transitions=contract_transitions, parent=parent, timeline=sorted(timeline, key=lambda x:x[0]))
def users_dialog(id_from, id_to): """ Обработчик для отображения диалога между 2-мя пользователями """ session = db_session.create_session() user_from = get_user(session, id_from) user_to = get_user(session, id_to, check_auth=False) dialog = session.query(Dialog).filter( or_(and_(Dialog.id1 == id_from, Dialog.id2 == id_to), and_(Dialog.id1 == id_to, Dialog.id2 == id_from))).first() if not dialog: # Проверка на существование диалога, и создание пустого если его нет dialog = Dialog(id1=id_from, id2=id_to) session.add(dialog) session.commit() msg_ids = [] # При открытии окна диалога все сообщения читаются for message in dialog.unread_messages(id_from): message.is_read = True msg_ids.append(str(message.id)) data = f'{user_from.id} {user_to.id},{" ".join(msg_ids)}' session.commit() # Отправка всех уведомлений на клиент unm = len(user_from.unread_dialogs()) user_from.add_notification(session, 'unread_messages', unm) user_to.add_notification(session, 'messages_read', data) send('update', 'messages read (user opened dialog)', [user_to.sid, user_from.sid]) # form = SendMessageForm() # Инициализация формы для отправки сообщений return render_template('dialog_page.html', title='Диалоги', messages=list(dialog.messages), user_to=user_to, form=form, dialog=dialog, unm=unm)
def messages(): try: chat_id = int(request.args.get('chat')) chat = Chat.query.get(chat_id) form = SendMessageForm() if form.validate_on_submit(): user = User.query.get(int(current_user.get_id())) message = Message(message=form.message.data, sent_from=user, chat=chat) db.session.add(message) db.session.commit() messages = [] for message in chat.messages: messages.append({ 'author': message.sent_from.username, 'text': message.message }) return render_template('messages.html', form=form, messages=messages) except Exception as e: print(e) return redirect(url_for('dialogues'))
def sendmessage(request): email_session = request.session.get('email') account = Account.objects.select_related().get(login__email=email_session) MyMsgForm = SendMessageForm(request.POST) if request.method == "POST": if MyMsgForm.is_valid(): message = MyMsgForm.cleaned_data['message'] to = MyMsgForm.cleaned_data['to'] subject = MyMsgForm.cleaned_data['subject'] msg = Message() msg.message = message msg.subject = subject msg.message_from = account msg.message_to = Account.objects.select_related().get( login__email=to) msg.date = datetime.datetime.now() msg.save() return redirect('/message/')
def post(self, request): form = SendMessageForm(request.POST, initial={'sender': request.user}) if form.is_valid(): form.save() return redirect('/received/') return redirect('/dashboard/')
def get(self, request): form = SendMessageForm(initial={'sender': request.user}) return render(request, 'new_message.html', {'form': form})