def create_comment(): """ статус “закрыт” финальный (нельзя) изменить статус или добавить комментарий) :return: """ data = json.loads(request.data) ticket_id = data.get('ticket_id') text = data.get('text') email = data.get('email') if not data or ticket_id is None or email is None or text is None: abort(400) try: ticket = Ticket.query.filter_by(id=ticket_id).first() if ticket is None: abort(400) if ticket.status.name == 'closed': abort(403) comment = Comment(text=text, email=email, ticket_id=ticket_id) db.session.add(comment) db.session.commit() return app.response_class(response=comment.json(), status=200, mimetype='application/json') except exc.SQLAlchemyError: print(f'''Error: \n {traceback.format_exc()}''') db.session.rollback() abort(501) finally: db.session.close()
def handle_cierre_supervisor(): incidence_id = request.form['incidence_id'] comentario_incidencia = request.form['comentario_incidencia'] resolucion = 'resolve' in request.form if resolucion: resolucion = 0 else: resolucion = 1 status = Status(incidence_id, get_technician(incidence_id), 5) #user=tecnico update_status(status, 6, session.get('username')) if comentario_incidencia != '': comentario = Comment(incidence_id, session.get('username'), 6, comentario_incidencia) insert_comment(comentario) update_resolve(incidence_id, resolucion) incidencias = select_incidences_notify_for_closed() empty_notif = 0 notificaciones = get_notification(session.get('username')) if len(notificaciones) == 0: empty_notif = 1 return render_template('incidencias_notificadas_resolucion.html', username=session.get('username'), role=session.get('role'), notificaciones=notificaciones, empty_notif=empty_notif, incidencias=incidencias)
def handle_cierre_cliente_todas(): logger.info("Cierre cliente tratado") username_stat = get_supervisor() logger.info(username_stat) idcli = request.form['idcli'] comentario_incidencia = request.form['comentario_incidencia'] status = Status(idcli, username_stat, 4) username = session.get('username') if comentario_incidencia != '': comentario = Comment(idcli, session.get('username'), 4, comentario_incidencia) insert_comment(comentario) # update_status(status,5,username) # cuestion del cambio a estado 5, lo hace cliente? ELIMINADO UPDATE CLIENTE role = session.get('role') notify_close(status, role) incidencias = select_open_incidences(session.get('username')) empty_notif = 0 notificaciones = get_notification(username) if len(notificaciones) == 0: empty_notif = 1 # devices=get_devices() return render_template('incidencias.html', username=session.get('username'), role=session.get('role'), notificaciones=notificaciones, empty_notif=empty_notif, incidencias=incidencias)
def handle_cierre_cliente(): logger.info("Cierre cliente tratado") id_incidence = request.form['id_incidence'] comentario_incidencia = request.form['comentario_incidencia'] sender = session.get('username') receiver = get_technician(id_incidence) create_notification(id_incidence, sender, receiver) if comentario_incidencia != '': comentario = Comment(id_incidence, session.get('username'), 4, comentario_incidencia) insert_comment(comentario) incidencias = select_open_incidences(session.get('username')) empty_notif = 0 notificaciones = get_notification(session.get('username')) if len(notificaciones) == 0: empty_notif = 1 return render_template('incidencias_abiertas.html', username=session.get('username'), role=session.get('role'), notificaciones=notificaciones, empty_notif=empty_notif, incidencias=incidencias)
def handle_cierre_tecnico(): logger.info("Cierre tecnico tratado") username_stat = get_supervisor() logger.info(username_stat) idtec = request.form['idtec'] comentario_incidencia = request.form['comentario_incidencia'] status = Status(idtec, username_stat, 4) username = session.get('username') update_status(status, 5, username) role = session.get('role') notify_close(status, role) if comentario_incidencia != '': comentario = Comment(idtec, session.get('username'), 5, comentario_incidencia) insert_comment(comentario) else: logger.info("Sin comentario") incidencias = select_open_assigned_incidences_tech(session.get('username')) empty_notif = 0 notificaciones = get_notification(username) if len(notificaciones) == 0: empty_notif = 1 return render_template('incidencias_asignadas.html', username=session.get('username'), role=session.get('role'), notificaciones=notificaciones, empty_notif=empty_notif, incidencias=incidencias)
def add_layer_comment(self, user: User, comment: Comment, parent_comment: Comment): try: self._update_comment_step(parent_comment) # add comment comment.user_id = user.id comment.step = parent_comment.step + 1 comment.depth = parent_comment.depth + 1 self.post.increase_comment_count() self.comments.append(comment) db.session.commit() except Exception as e: db.session.rollback() raise e else: return comment
def comment(): form = CommentForm(request.values) if form.validate(): email = form.email.data guest = Guest.query.filter_by(guest_email=email).first() if guest: if guest.state and not guest.black: # 检验成功,未被拉黑 c = Comment() res = c.add_comment(form, guest.nickname, yes=True) if res is not None: return jsonify(trueReturn(msg="留言成功!", data=res)) if res is None: return jsonify(falseReturn(msg='网络错误')) if guest.black: return jsonify(falseReturn(msg='此邮箱在小黑屋反省中...')) if not guest or not guest.state: c = Comment() res = c.add_comment(form) token = Guest.generate_token({"email": email, "id": c.id}) send_mail(to=email, subject="Dlog留言", template='email/confirm_comment', token=token) return jsonify( trueReturn(msg='此邮箱为第一次留言,为确认是否有效,请登录邮箱查看并确认,后续不再检验.'), data="") if not form.validate(): msg = get_errors_msg(form.errors) return jsonify(falseReturn(msg=msg))
def handle_comment_todas(): logger.info('Estoy en handle comment') comentario_incidencia = request.form['comentario_incidencia'] logger.info(comentario_incidencia) idinc = request.form['idcom'] logger.info(idinc) estadocom = request.form['estadocom'] logger.info(estadocom) usuario = session.get('username') if estadocom == 'Solicitada': estadocom = 1 elif estadocom == 'Aceptada': estadocom = 2 elif estadocom == 'Rechazada': estadocom = 3 elif estadocom == 'Asignada': estadocom = 4 elif estadocom == 'Notificada_resolucion': estadocom = 5 elif estadocom == 'Cerrada': estadocom = 6 comentario = Comment(idinc, usuario, estadocom, comentario_incidencia) insert_comment(comentario) incidencias = select_incidences_user(session.get('username')) empty_notif = 0 notificaciones = get_notification(session.get('username')) if len(notificaciones) == 0: empty_notif = 1 return render_template('incidencias.html', username=session.get('username'), role=session.get('role'), notificaciones=notificaciones, empty_notif=empty_notif, incidencias=incidencias)
def handle_dashboard_tecnico(): logger.info("Cierre tecnico tratado") username_stat = get_supervisor() logger.info(username_stat) idtec = request.form['idtec'] comentario_incidencia = request.form['comentario_incidencia'] status = Status(idtec, username_stat, 4) username = session.get('username') update_status(status, 5, username) role = session.get('role') notify_close(status, role) if comentario_incidencia != '': comentario = Comment(idtec, session.get('username'), 5, comentario_incidencia) insert_comment(comentario) incidencias = select_open_assigned_incidences_tech(session.get('username')) empty_notif = 0 notificaciones = get_notification(username) if len(notificaciones) == 0: empty_notif = 1 total_incidences = client_total_open(session.get('username')) total_assigned = count_total_assigned_incidences(session.get('username')) total_notify_closed = count_total_notify_closed_assigned_incidences( session.get('username')) total_closed = count_total_closed_assigned_incidences( session.get('username')) return render_template('dashboard_technician.html', username=session.get('username'), role=session.get('role'), notificaciones=notificaciones, empty_notif=empty_notif, incidencias=incidencias, total_incidences=total_incidences, total_assigned=total_assigned, total_closed=total_closed, total_notify_closed=total_notify_closed)
def delete(target_comment: Comment): try: target_comment.delete() except Exception as e: raise e