def add_vehicle_car(request): main_user = request.user.house_user other = main_user.get_other_users() if request.method == 'POST': in_form = AddVehicleCarForm(request.POST) operate_formset = OperateFormSet(request.POST) if operate_formset.is_valid() and in_form.is_valid(): vehicle_type = VehicleType.objects.get(vehicle_type='Car') new_vehicle = VehicleGeneric.objects.create( vehicle_type=vehicle_type, date_registered=date.today(), date_purchased=in_form.cleaned_data['date_purchased'] ) new_car = VehicleCar.objects.create( vehicle=new_vehicle, year_produced=in_form.cleaned_data['year_produced'], make=in_form.cleaned_data['make'], model=in_form.cleaned_data['model'], license_plate=in_form.cleaned_data['license_plate'].upper(), milage_purchased=in_form.cleaned_data['milage_purchased'], milage_registered=in_form.cleaned_data['milage_registered'], vin=in_form.cleaned_data['vin'], owned_by=main_user ) for operate_form in operate_formset: user_pk = int(operate_form.cleaned_data['user_id']) can_operate = operate_form.cleaned_data['can_operate'] operate_user = HouseUser.objects.get(pk=user_pk) operate_map = VehicleCarUserPermission.objects.create( car=new_car, user=operate_user, can_operate=can_operate, ) return HttpResponseRedirect("/vehicle/") else: template = loader.get_template('base/err_template.html') return HttpResponse(template.render({'form':in_form})) template = "vehicle/add_edit_vehicle.html" in_form = AddVehicleCarForm() init_formset_data = [] for person in other: ######################### # First field is made by VoidWidget to display username AS part of form ######################### init_form_data={ 'id':None, 'user_name':person.user, # This is for display purposes 'user_id':person.user.pk, 'can_operate':True} init_formset_data.append(init_form_data) operate_formset = OperateFormSet(initial=init_formset_data) context = {'form':in_form,'operate_formset':operate_formset} context['action'] = 'add' context['username'] = request.session['user_name'] return render(request,template,context)
def edit_vehicle_car(request,in_vehicle_id): main_user = request.user.house_user other = main_user.get_other_users() edit_vehicle = VehicleCar.objects.get(pk=in_vehicle_id) if request.method == 'POST': in_form = AddVehicleCarForm(request.POST) operate_formset = OperateFormSet(request.POST) if operate_formset.is_valid() and in_form.is_valid(): edit_vehicle.year_produced = in_form.cleaned_data['year_produced'] edit_vehicle.make = in_form.cleaned_data['make'] edit_vehicle.model = in_form.cleaned_data['model'] edit_vehicle.license_plate = in_form.cleaned_data['license_plate'].upper() edit_vehicle.milage_purchased = in_form.cleaned_data['milage_purchased'] edit_vehicle.milage_registered = in_form.cleaned_data['milage_registered'] edit_vehicle.vin = in_form.cleaned_data['vin'] edit_vehicle.save() for operate_form in operate_formset: map_pk = int(operate_form.cleaned_data['id']) can_operate = operate_form.cleaned_data['can_operate'] operate_map = VehicleCarUserPermission.objects.get(pk=map_pk) operate_map.can_operate=can_operate operate_map.save() return HttpResponseRedirect("/vehicle/") else: template = loader.get_template('base/err_template.html') return HttpResponse(template.render({'form':in_form})) template = "vehicle/add_edit_vehicle.html" in_form = AddVehicleCarForm(instance=edit_vehicle, initial={'date_purchased':edit_vehicle.vehicle.date_purchased}) init_formset_data = [] for person in other: map_obj = VehicleCarUserPermission.objects.filter(car=edit_vehicle).get(user_id=person.pk) init_form_data={ 'id':map_obj.id, 'user_name':map_obj.user, # This is for display purposes 'can_operate':map_obj.can_operate} init_formset_data.append(init_form_data) operate_formset = OperateFormSet(initial=init_formset_data) context = {'form':in_form,'operate_formset':operate_formset} context['username'] = request.session['user_name'] return render(request,template,context)