Пример #1
0
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)
Пример #2
0
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]))
Пример #3
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'))
Пример #4
0
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)
Пример #5
0
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/')
Пример #6
0
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)
Пример #7
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)
Пример #8
0
 def post(self, request):
     form = SendMessageForm(request.POST, initial={'sender': request.user})
     if form.is_valid():
         form.save()
         return redirect('/received/')
     return redirect('/dashboard/')
Пример #9
0
 def get(self, request):
     form = SendMessageForm(initial={'sender': request.user})
     return render(request, 'new_message.html', {'form': form})