def save_data_form_grid(request, pk_id, form, formset, formset_pilot): if pk_id: LogSection.objects.filter(log = pk_id).delete() log = Log.objects.get(pk=pk_id) if log: form = LogForm(request.POST, customer = request.POST.get('customer'), model = request.POST.get('model'), instance=log) form = form.save(commit = False) try: em = Employee.objects.filter(employee_number = request.session[constant.usernameParam]) if em: form.pilot_employee_number = em[0] except: print "get employee number" pass submit = None try: submit = request.POST.get("submit") except Exception as e: print 'Loi o kt submit' print e if submit: form.is_submited = True messages.success(request, 'Flight Log is submitted successfully.') else: messages.info(request, 'Flight Log is saved successfully.') form.save() log_ob = Log.objects.order_by('log_number').all() log_count = log_ob.count() formset = formset.save(commit=False) for f in formset: f.log_id = Log.objects.get(pk=pk_id) if pk_id else log_ob[log_count-1] f.save() formset_pilot = formset_pilot.save(commit=False) for f in formset_pilot: f.log = Log.objects.get(pk=pk_id) if pk_id else log_ob[log_count-1] f.save() # Flight Leg section (Pop up) try: list_flight_log = get_list_session_object(request, Log.objects.filter(id_log = pk_id)[0]) except Exception as e: print 'save trong ham save 230' print e list_flight_log = get_list_session_object(request, log_ob[log_count-1]) for flight_log in list_flight_log: flight_log.save()
def log(request): if not is_login(request): return response_redirect_login(request) link_return = "/" """" Initial for flight log table and fuel table """ flight_table = [] log_emp_list = [] log_loc_list = [] log_model = None log = None max_pax = None locations = None payload_available = None alert = None log_id = None check = None is_sub = None log_ob = Log.objects.order_by("log_number").all() if log_ob: log_count = log_ob.count() log_n = log_ob[log_count - 1].log_number + 1 else: log_n = 1 list_emp = Employee.objects.all().order_by("first_name") extra_value = 1 extra_value_pilot = 0 if "log_id" in request.GET: id = request.GET["log_id"] a = Log_Location.objects.filter(log_id=id).count() if id else 0 if a >= 1: extra_value = 0 b = LogEmployee.objects.filter(log=id).count() if id else 0 if b >= 1: extra_value_pilot = 0 FuelFormSet = modelformset_factory( model=Log_Location, form=FuelForm, can_delete=True, max_num=10, extra=extra_value ) PilotFormSet = formset_factory(form=PilotForm, max_num=10, extra=extra_value_pilot) if request.method == "POST": formset = FuelFormSet(request.POST, request.FILES) formset_pilot = PilotFormSet(request.POST, request.FILES, prefix="pilots") form = LogForm(request.POST, customer=request.POST.get("customer"), model=request.POST.get("model")) log_num = request.POST.get("log_number") if form.is_valid() and formset.is_valid() and formset_pilot.is_valid(): pk_id = request.POST.get("id_log") alert = save_data_form_grid(request, pk_id, form, formset, formset_pilot, log_num) check = True delete_session(request) try: submit = request.POST[constant.submit] if submit: is_sub = True link_return = "/search/" except: pass if not alert: try: param = request.get_full_path() next = param[5:] if next == "1": link_return = "/search/" if next == "2": link_return = "/" if next == "3": link_return = "/log/" except: pass return HttpResponseRedirect(link_return) # return HttpResponseRedirect(link_return) else: # Get data from DB and reload data into sessions delete_session(request) try: """ Initial data for session flight log """ log_id = request.GET["log_id"] formset = FuelFormSet(queryset=Log_Location.objects.filter(log_id=log_id)) cur_login_user = LogEmployee.objects.filter(log=log_id).values() formset_pilot = PilotFormSet(initial=cur_login_user, prefix="pilots") log_emp_list = LogEmployee.objects.filter(log=log_id) log_loc_list = Log_Location.objects.filter(log_id=log_id) log_object = Log.objects.get(id_log=log_id) flight_table = LogSection.objects.filter(log=log_object) list_flight_log = [] for flight_log in flight_table: list_flight_log.append(serializers.serialize("json", [flight_log])) request.session[constant.list_flight_log] = list_flight_log """ Reload data for LogForm Section and AirCraft """ log_id = request.GET["log_id"] log = Log.objects.get(id_log=log_id) log_n = log.log_number mod = 0 if log.a1c.id_a1c: ac = log.a1c.id_a1c if A1C.objects.get(id_a1c=ac): log_model = A1C.objects.get(id_a1c=ac).model mod = log_model.id_model max_pax = log_model.max_passenger payload_available = log_model.max_gross_weight - log.opterational_weight form = LogForm( reload=True, customer=log_object.customer, model=log_object.a1c.model, instance=log, initial={"model": mod}, ) except Exception as e: form = LogForm( customer=request.POST.get("customer"), model=request.POST.get("model"), initial={"log_number": log_n, "user_id": request.session[constant.usernameParam]}, ) formset = FuelFormSet(queryset=Log_Location.objects.none()) list = [] sic = pic = night = day = vfr = ifr = nvg = co_nvg = 0 pilot = LogEmployee() pilot.sic = sic pilot.day = day pilot.night = night pilot.nvg = nvg pilot.vfr = vfr pilot.ifr = ifr pilot.employee = Employee.objects.get(employee_number=request.session[constant.usernameParam]) list.append(todict(pilot)) formset_pilot = PilotFormSet(initial=list, prefix="pilots") pass list_flight_log = get_list_session_object(request) locations = [] for flight_log in list_flight_log: if flight_log.flight_data_fuel_station: location = Location.objects.get(id_location=flight_log.flight_data_fuel_station.id_location) if location: if location not in locations: locations.append(location) import operator locations.sort(key=operator.attrgetter("location_name")) c = { "flight_table": flight_table, "form": form, "formset": formset, "formset_pilot": formset_pilot, "id": log_n, "list_emp": list_emp, "locations": locations, constant.forms: flight_table, "log_emp_list": log_emp_list, "log_model": log_model, "max_pax": max_pax, "payload_available": payload_available, "emp_number": request.session[constant.usernameParam], "log_loc_list": log_loc_list, "alert": alert, "log_id": log_id, "check": check, "is_sub": is_sub, } c.update(csrf(request)) return render(request, "flights/index.html", c)
def save_data_form_grid(request, pk_id, form, formset, formset_pilot, log_number): alert = None if pk_id: LogSection.objects.filter(log=pk_id).delete() log = Log.objects.get(pk=pk_id) if log: form = LogForm( request.POST, customer=request.POST.get("customer"), model=request.POST.get("model"), instance=log ) form = form.save(commit=False) else: form = form.save(commit=False) check_lognumber = Log.objects.filter(log_number=log_number) o = Log.objects.order_by("log_number").all() c = o.count() if check_lognumber: new_log_num = o[c - 1].log_number + 1 form.log_number = new_log_num alert = "The log number has been used. Your log number changes to %06d" % new_log_num try: em = Employee.objects.filter(employee_number=request.session[constant.usernameParam]) if em: form.pilot_employee_number = em[0] except: pass submit = None try: submit = request.POST.get("submit") except Exception as e: pass if submit: form.is_submited = True messages.success(request, "Flight Log is submitted successfully.") else: messages.info(request, "Flight Log is saved successfully.") form.save() log_ob = Log.objects.order_by("log_number").all() log_count = log_ob.count() formset = formset.save(commit=False) for f in formset: f.log_id = Log.objects.get(pk=pk_id) if pk_id else log_ob[log_count - 1] f.save() """Delete older Log Employee""" if pk_id: LogEmployee.objects.filter(log=pk_id).delete() for f in formset_pilot: f = f.save(commit=False) f.log = Log.objects.get(pk=pk_id) if pk_id else log_ob[log_count - 1] f = f.save() # Flight Leg section (Pop up) try: list_flight_log = get_list_session_object(request, Log.objects.filter(id_log=pk_id)[0]) except Exception as e: list_flight_log = get_list_session_object(request, log_ob[log_count - 1]) for flight_log in list_flight_log: if flight_log.partial_nfr == "": flight_log.partial_nfr = -1 flight_log.save() return alert
def log(request): if not is_login(request): return response_redirect_login(request) link_return = "/" """" Initial for flight log table and fuel table """ flight_table = [] log_emp_list = [] log_loc_list = [] log_model = None log = None max_pax = None locations = None log_ob = Log.objects.order_by('log_number').all() if log_ob: log_count = log_ob.count() log_n = log_ob[log_count-1].log_number + 1 else: log_n = 1 list_emp = Employee.objects.all().order_by('first_name') extra_value = 1 extra_value_pilot = 1 if "log_id" in request.GET: id = request.GET["log_id"] a = Log_Location.objects.filter(log_id = id).count() if id else 0 if a >= 1: extra_value = 0 b = LogEmployee.objects.filter(log = id).count() if id else 0 if b >= 1: extra_value_pilot = 0 FuelFormSet = modelformset_factory(model = Log_Location, form = FuelForm, can_delete=True, max_num=10, extra = extra_value) PilotFormSet = modelformset_factory(model = LogEmployee, form = PilotForm, can_delete=True, max_num=10, extra = extra_value_pilot) if request.method == 'POST': print "moi vao post" formset = FuelFormSet(request.POST, request.FILES) formset_pilot = PilotFormSet(request.POST, request.FILES, prefix='pilots') form = LogForm(request.POST, customer = request.POST.get('customer'), model = request.POST.get('model')) if form.is_valid() and formset.is_valid() and formset_pilot.is_valid(): pk_id = request.POST.get('id_log') save_data_form_grid(request, pk_id, form, formset, formset_pilot) print "sau goi ham save_data_form_grid" delete_session(request) try: submit = request.POST[constant.submit] if submit: print "vao submit" link_return = "/search/" except: print "vao pass form.is_valid() and list_object" pass return HttpResponseRedirect(link_return) else:#Get data from DB and reload data into sessions delete_session(request) try: """ Initial data for session flight log """ log_id = request.GET["log_id"] formset = FuelFormSet(queryset=Log_Location.objects.filter(log_id=log_id)) formset_pilot = PilotFormSet(queryset=LogEmployee.objects.filter(log=log_id), prefix='pilots') log_emp_list = LogEmployee.objects.filter(log = log_id) log_loc_list = Log_Location.objects.filter(log_id = log_id) log_object = Log.objects.get(id_log = log_id) flight_table = LogSection.objects.filter(log = log_object) list_flight_log = [] for flight_log in flight_table: list_flight_log.append(serializers.serialize('json', [flight_log, ])) request.session[constant.list_flight_log] = list_flight_log """ Reload data for LogForm Section and AirCraft """ log_id = request.GET["log_id"] log = Log.objects.get(id_log = log_id) log_n = log.log_number mod = 0 if log.a1c.id_a1c: ac = log.a1c.id_a1c if A1C.objects.get(id_a1c = ac): log_model = A1C.objects.get(id_a1c = ac).model mod = log_model.id_model max_pax = log_model.max_passenger form = LogForm(reload = True, customer = log_object.customer, model = log_object.a1c.model, instance=log, initial={"model": mod}) except Exception as e: form = LogForm(customer = request.POST.get('customer'), model = request.POST.get('model'), initial={'log_number': log_n, 'user_id': request.session[constant.usernameParam]}) formset = FuelFormSet(queryset=Log_Location.objects.none()) formset_pilot = PilotFormSet(queryset=LogEmployee.objects.none(), prefix='pilots') pass list_flight_log = get_list_session_object(request) locations = [] for flight_log in list_flight_log: if flight_log.flight_data_fuel_station: location = Location.objects.get(id_location = flight_log.flight_data_fuel_station.id_location) if location: if location not in locations: locations.append(location) import operator locations.sort(key=operator.attrgetter("location_name")) c = { 'form': form, 'formset': formset, 'formset_pilot': formset_pilot, 'id': log_n, 'list_emp': list_emp, 'locations': locations, constant.forms:flight_table, "log_emp_list":log_emp_list, "log_model" : log_model, "max_pax":max_pax, "emp_number" : request.session[constant.usernameParam], "log_loc_list" : log_loc_list } c.update(csrf(request)) return render(request, "flights/index.html", c)