MD500_Pilot

Untitled

Apr 23rd, 2020
431
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.27 KB | None | 0 0
  1. @app.route('/schedule/<int:id>',methods=['GET','POST'])
  2. def schedule(id):
  3.     schedule1_conflict = False
  4.     zone1_with_conflict = ''
  5.     job1_with_conflict = ''
  6.     schedule2_conflict = False
  7.     zone2_with_conflict = ''
  8.     job2_with_conflict = ''
  9.     job_success = ''
  10.     zone = f'zone{id}'
  11.     form = JobForm()
  12.     job1_jobid = (neptune.get_schedule_by_zone_job(zone, '1')[0][0])
  13.     job1_enabled = (neptune.get_schedule_by_zone_job(zone, '1')[0][3])
  14.     job1_start_time = (neptune.get_schedule_by_zone_job(zone, '1')[0][4])
  15.     job1_duration = (neptune.get_schedule_by_zone_job(zone, '1')[0][6])
  16.     job1_monday = (neptune.get_schedule_by_zone_job(zone, '1')[0][8])
  17.     job1_tuesday = (neptune.get_schedule_by_zone_job(zone, '1')[0][9])
  18.     job1_wednesday = (neptune.get_schedule_by_zone_job(zone, '1')[0][10])
  19.     job1_thursday = (neptune.get_schedule_by_zone_job(zone, '1')[0][11])
  20.     job1_friday = (neptune.get_schedule_by_zone_job(zone, '1')[0][12])
  21.     job1_saturday = (neptune.get_schedule_by_zone_job(zone, '1')[0][13])
  22.     job1_sunday = (neptune.get_schedule_by_zone_job(zone, '1')[0][14])
  23.     form.start_hour_job1.data = str(job1_start_time.hour)
  24.     form.start_minute_job1.data = str(job1_start_time.minute)
  25.     form.duration_job1.data = str(job1_duration)
  26.     form.monday_job1.data = job1_monday
  27.     form.tuesday_job1.data = job1_tuesday
  28.     form.wednesday_job1.data = job1_wednesday
  29.     form.thursday_job1.data = job1_thursday
  30.     form.friday_job1.data = job1_friday
  31.     form.saturday_job1.data = job1_saturday
  32.     form.sunday_job1.data = job1_sunday
  33.  
  34.     job2_jobid = (neptune.get_schedule_by_zone_job(zone, '2')[0][0])
  35.     job2_enabled = (neptune.get_schedule_by_zone_job(zone, '2')[0][3])
  36.     job2_start_time = (neptune.get_schedule_by_zone_job(zone, '2')[0][4])
  37.     job2_duration = (neptune.get_schedule_by_zone_job(zone, '2')[0][6])
  38.     job2_monday = (neptune.get_schedule_by_zone_job(zone, '2')[0][8])
  39.     job2_tuesday = (neptune.get_schedule_by_zone_job(zone, '2')[0][9])
  40.     job2_wednesday = (neptune.get_schedule_by_zone_job(zone, '2')[0][10])
  41.     job2_thursday = (neptune.get_schedule_by_zone_job(zone, '2')[0][11])
  42.     job2_friday = (neptune.get_schedule_by_zone_job(zone, '2')[0][12])
  43.     job2_saturday = (neptune.get_schedule_by_zone_job(zone, '2')[0][13])
  44.     job2_sunday = (neptune.get_schedule_by_zone_job(zone, '2')[0][14])
  45.     form.start_hour_job2.data = str(job2_start_time.hour)
  46.     form.start_minute_job2.data = str(job2_start_time.minute)
  47.     form.duration_job2.data = str(job2_duration)
  48.     form.monday_job2.data = job2_monday
  49.     form.tuesday_job2.data = job2_tuesday
  50.     form.wednesday_job2.data = job2_wednesday
  51.     form.thursday_job2.data = job2_thursday
  52.     form.friday_job2.data = job2_friday
  53.     form.saturday_job2.data = job2_saturday
  54.     form.sunday_job2.data = job2_sunday
  55.  
  56.     if form.validate_on_submit():
  57.         print(form.data)
  58.         # Uodate job start/stop times and duration based on form input
  59.         job1_new_start_hour = request.form['start_hour_job1']
  60.         job1_new_start_minute = request.form['start_minute_job1']
  61.         job2_new_start_hour = request.form['start_hour_job2']
  62.         job2_new_start_minute = request.form['start_minute_job2']
  63.         job1_new_start_time = datetime.strptime(job1_new_start_hour + ':' + job1_new_start_minute + ':00', '%H:%M:%S').time()
  64.         job2_new_start_time = datetime.strptime(job2_new_start_hour + ':' + job2_new_start_minute + ':00', '%H:%M:%S').time()
  65.         job1_new_duration = int(request.form['duration_job1'])
  66.         job2_new_duration = int(request.form['duration_job2'])
  67.         job1_delta = timedelta(minutes = job1_new_duration)
  68.         job2_delta = timedelta(minutes = job2_new_duration)
  69.         job1_new_stoptime = ((datetime.combine(date(1,1,1), job1_new_start_time) + job1_delta).time())
  70.         job2_new_stoptime = ((datetime.combine(date(1,1,1), job2_new_start_time) + job2_delta).time())
  71.  
  72.         #Update days of week based on job
  73.         for job in jobs:
  74.             jobfield = job[0]
  75.             jobnumber = job[1]
  76.             dayofjob = job[2]
  77.             value = bool(request.form.get(jobfield, False))
  78.             neptune.update_day(zone, jobnumber, dayofjob, value)
  79.  
  80.         job1_time_conflict = sa_check_zone_times_conflict(job1_new_start_time, job1_new_stoptime, job1_jobid)
  81.         if job1_time_conflict:
  82.             schedule1_conflict = True
  83.             zone1_with_conflict = sa_check_zone_times_jobid(job1_new_start_time, job1_new_stoptime)[0][1]
  84.             job1_with_conflict = sa_check_zone_times_jobid(job1_new_start_time, job1_new_stoptime)[0][2]
  85.         else:
  86.             job_success = True
  87.             neptune.update_job_start_time(zone, '1', job1_new_start_time)
  88.             neptune.update_job_stop_time(zone, '1', job1_new_stoptime)
  89.             neptune.update_job_duration(zone, '1', job1_new_duration)
  90.  
  91.         job2_time_conflict = sa_check_zone_times_conflict(job2_new_start_time, job2_new_stoptime, job2_jobid)
  92.         if job2_time_conflict:
  93.             schedule2_conflict = True
  94.             zone2_with_conflict = sa_check_zone_times_jobid(job1_new_start_time, job1_new_stoptime)[0][1]
  95.             job2_with_conflict = sa_check_zone_times_jobid(job1_new_start_time, job1_new_stoptime)[0][2]
  96.         else:
  97.             job_success = True
  98.             neptune.update_job_start_time(zone, '2', job2_new_start_time)
  99.             neptune.update_job_stop_time(zone, '2', job2_new_stoptime)
  100.             neptune.update_job_duration(zone, '2', job2_new_duration)
  101.  
  102.         return redirect(url_for('schedule', id=id,
  103.                                 job_success = job_success,
  104.                                 schedule1_conflict=schedule1_conflict,
  105.                                 zone1_with_conflict=zone1_with_conflict,
  106.                                 job1_with_conflict=job1_with_conflict,
  107.                                 schedule2_conflict=schedule2_conflict,
  108.                                 zone2_with_conflict=zone2_with_conflict,
  109.                                 job2_with_conflict=job2_with_conflict
  110.                                 ))
  111.  
  112.     else:
  113.         print("Validation Failed")
  114.         print(form.errors)
  115.     return render_template('schedule.html',form = form, job1_enabled = job1_enabled,
  116.                            job2_enabled = job2_enabled, id = id)
Advertisement
Add Comment
Please, Sign In to add comment