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 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 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'))