from django.shortcuts import render from pyrosapp.models import Sequence, Schedule from django.contrib.auth.decorators import login_required from scheduler.simulator import Simulator from operator import attrgetter SIMULATION_FILE = 'file:./scheduler/sequences_cador.html' @login_required def current_schedule(request): schedule = Schedule.objects.order_by("-created")[0] shs_list = schedule.shs.all() sequences = [(shs.sequence, shs) for shs in shs_list] nb_scheduled_sequences = len(shs_list) executed_sequences = len([shs for shs in shs_list if shs.status == Sequence.EXECUTED]) return render(request, 'scheduler/current_schedule.html', {'sequences' : sequences, 'schedule' : schedule, 'nb_scheduled_sequences' : nb_scheduled_sequences, 'executed_sequences' : executed_sequences}) @login_required def schedule_simulation(request): simulator = Simulator() schedule, sequences = simulator.simulate(SIMULATION_FILE) nb_scheduled_sequences = len([sequence for sequence in sequences if sequence[1].status != Sequence.OBSERVABLE]) executed_sequences = len([sequence for sequence in sequences if sequence[1].status == Sequence.EXECUTED]) sequences.sort(key=lambda seq: seq[1].tsp) return render(request, 'scheduler/current_schedule.html', {'sequences' : sequences, 'schedule' : schedule, 'nb_scheduled_sequences' : nb_scheduled_sequences, 'executed_sequences' : executed_sequences})