Example #1
0
def feedback(fix):
    if request.method == 'POST':
        if (len(request.form["textFeedback"]) < 20) or (len(
                request.form["textNewTask"]) < 20):
            return render_template('fixes/wrong_feedback.jinja2', fix=fix)
        else:
            # Update feedback and create new fix
            # --- Updating feedback for current failed fix
            old_fix = Fix.get_fix_by_id(fix)
            old_fix.failed(request.form["textFeedback"])
            # --- Creating new fix, add it to failure list
            new_fix = Fix(rack=old_fix.rack,
                          failure=old_fix.failure,
                          task=old_fix.task,
                          category=Task.get_task_by_id(old_fix.task).category,
                          description=request.form["textNewTask"],
                          started_at=Utils.get_utc_time(),
                          start_user=session['email'])
            new_fix.save_to_db()
            Failure.get_failure_by_id(old_fix.failure).add_fix(new_fix._id)
            tasks = []  # Empty list of task Object
            tasksid_list = Rack.get_rack_by_id(old_fix.rack).tasks
            for elem in tasksid_list:
                tasks.append(Task.get_task_by_id(elem))
            return redirect(url_for('tasks.continue_test', rack=old_fix.rack))
    else:
        actual_fix = Fix.get_fix_by_id(fix)
        return render_template('fixes/feedback.jinja2', fix=actual_fix)
Example #2
0
def add_new_fix(rack, task, failure):
    #
    #  If the input is less than 20 characters, create the FIX and render the rack_tasks again
    #
    if request.method == 'POST':
        if len(request.form["text"]) < 20:
            return render_template('fixes/wrong_fix_description.jinja2',
                                   task=task,
                                   rack=rack,
                                   failure=failure)
        fix = Fix(rack=rack,
                  failure=failure,
                  task=task,
                  category=Task.get_task_by_id(task).category,
                  description=request.form["text"],
                  started_at=Utils.get_utc_time(),
                  start_user=session['email'])
        fix.save_to_db()
        failure_to_update = Failure.get_failure_by_id(failure)
        failure_to_update.add_fix(fix._id)
        #  If the fix was added successfuly, render again the rack_tasks
        rack_look_up = Rack.get_rack_by_id(rack)
        taskid_list = rack_look_up.tasks
        tasks = []
        for elem in taskid_list:
            tasks.append(Task.get_task_by_id(elem))
        return redirect(url_for('tasks.continue_test', rack=rack))
    #  This is for GET requests...to create create an aditional fix
    return render_template('fixes/add_fix.jinja2',
                           failure=failure,
                           rack=rack,
                           task=task)
Example #3
0
def create_report(rack, task):
    if request.method == 'POST':
        rack_to_test = Rack.get_rack_by_id(rack)
        node_number = request.form['node_number']
        node_sn = request.form['node_sn']

        chassis_number = request.form['chassis_number']
        chassis_sn = request.form['chassis_sn']

        failed_step = request.form['failed_step']
        description = request.form['description']

        badcomponent_sn = request.form['badcomponent_sn']
        badcomponent_device = request.form['badcomponent_device']
        badcomponent_replacement = request.form['badcomponent_replacement']

        frecord = FRecord(rack=rack,
                          task=task,
                          start_user=session['email'],
                          started_at=Utils.get_utc_time(),
                          description=description,
                          badcomponent_device=badcomponent_device,
                          badcomponent_sn=badcomponent_sn,
                          badcomponent_replacement=badcomponent_replacement,
                          node_number=node_number,
                          node_sn=node_sn,
                          chassis_number=chassis_number,
                          chassis_sn=chassis_sn,
                          failed_step=failed_step)
        frecord.save_to_db()
        Task.get_task_by_id(task).failed(True)
        rack_to_test.failed_rack()
        return redirect(url_for('tasks.continue_test', rack=rack))
    return render_template('frecords/create_report.jinja2',
                           rack=rack,
                           task=task)
Example #4
0
def report(rack, task):
    if request.method == 'POST':
        if len(request.form["text"]) < 20:
            return render_template('failures/wrong_failure_description.jinja2',
                                   task=task,
                                   rack=rack)
        failure = Failure(rack=rack,
                          category=Task.get_task_by_id(task).category,
                          description=request.form["text"],
                          task=task,
                          started_at=Utils.get_utc_time(),
                          start_user=session['email'])
        failure.save_to_db()
        rackobject = Rack.get_rack_by_id(rack)
        rackobject.failed_rack()
        taskobject = Task.get_task_by_id(task)
        taskobject.failed(failure._id)
        return redirect(
            url_for('fixes.add_new_fix',
                    rack=rack,
                    task=task,
                    failure=failure._id))

    return render_template('failures/report.jinja2', task=task, rack=rack)
Example #5
0
 def finish(self, user):
     self.status = "Finished"
     self.finished_at = Utils.get_utc_time()
     self.finish_user = user
     self.update_to_mongo()
Example #6
0
 def start(self, user):
     self.status = "Running"
     self.started_at = Utils.get_utc_time()
     self.start_user = user
     self.update_to_mongo()
Example #7
0
 def finish(self, user):
     self.solved = True
     self.finished_at = Utils.get_utc_time()
     self.finish_user = user
     self.update_to_mongo()
Example #8
0
 def passed(self, user):
     self.feedback = "PASSED"
     self.solution = True
     self.finish_user = user
     self.finished_at = Utils.get_utc_time()
     self.update_to_mongo()
Example #9
0
 def finish_feedback(self, feedback, user):
     self.feedback = feedback
     self.finish_user = user
     self.finished_at = Utils.get_utc_time()
     self.update_to_mongo()