def cam_form(request, user, cam): if cam: initial = cam._data initial['type'] = cam.type.get_option_value() initial['operator'] = initial['operator'] and initial['operator'].id initial['tags'] = initial['tags'] and [i.id for i in initial['tags']] for tariff_type in Camera.TARIFF_FIELDS: value = getattr(cam, tariff_type) if value: initial[tariff_type] = value.id else: initial = {} if request.POST and request.POST.get('form', None) == 'cam': form = CameraForm(user, request.POST, initial=initial) if form.is_valid(): if not cam: cam = Camera() cam.owner = user old_tag_ids = [] elif form.cleaned_data['tags']: old_tag_ids = map(str, cam.tags) for k, v in form.cleaned_data.items(): setattr(cam, k, v) cam.type = CameraType.objects.get( id=form.cleaned_data['type'][:-2]) cam.operator = form.cleaned_data['operator'] and User.objects( id=form.cleaned_data['operator']).first() or None if form.cleaned_data['tags']: new_tag_ids = map(str, form.cleaned_data['tags']) CameraTag.calc_count(new_tag_ids, old_tag_ids) cam.tags = CameraTag.objects(id__in=form.cleaned_data['tags']) for tariff_type in Camera.TARIFF_FIELDS: value = form.cleaned_data[tariff_type] if value: value = Tariff.objects.get(id=value) assert value in getattr(Tariff, 'get_%s_list' % tariff_type)() setattr(cam, tariff_type, value) else: setattr(cam, tariff_type, None) cam.save() messages.add_message(request, messages.SUCCESS, _('Camera successfully updated')) return else: form = CameraForm(user, None, initial=initial) return dict(cam_form=form, camera=cam)
def cam_form(request, user, cam): if cam: initial = cam._data initial["type"] = cam.type.get_option_value() initial["operator"] = initial["operator"] and initial["operator"].id initial["tags"] = initial["tags"] and [i.id for i in initial["tags"]] for tariff_type in Camera.TARIFF_FIELDS: value = getattr(cam, tariff_type) if value: initial[tariff_type] = value.id else: initial = {} if request.POST and request.POST.get("form", None) == "cam": form = CameraForm(user, request.POST, initial=initial) if form.is_valid(): if not cam: cam = Camera() cam.owner = user old_tag_ids = [] elif form.cleaned_data["tags"]: old_tag_ids = map(str, cam.tags) for k, v in form.cleaned_data.items(): setattr(cam, k, v) cam.type = CameraType.objects.get(id=form.cleaned_data["type"][:-2]) cam.operator = ( form.cleaned_data["operator"] and User.objects(id=form.cleaned_data["operator"]).first() or None ) if form.cleaned_data["tags"]: new_tag_ids = map(str, form.cleaned_data["tags"]) CameraTag.calc_count(new_tag_ids, old_tag_ids) cam.tags = CameraTag.objects(id__in=form.cleaned_data["tags"]) for tariff_type in Camera.TARIFF_FIELDS: value = form.cleaned_data[tariff_type] if value: value = Tariff.objects.get(id=value) assert value in getattr(Tariff, "get_%s_list" % tariff_type)() setattr(cam, tariff_type, value) else: setattr(cam, tariff_type, None) cam.save() messages.add_message(request, messages.SUCCESS, _("Camera successfully updated")) return else: form = CameraForm(user, None, initial=initial) return dict(cam_form=form, camera=cam)
def setUp(self): self.tearDown() self.client = Client() self.camera_type_axis = CameraType( name='Axis', driver='axis.AxisDriver', is_controlled=False, ) self.camera_type_axis.save() self.camera_type_axis_manage = CameraType( name='Axis Manage', driver='axis.AxisDriver', is_controlled=True, ) self.camera_type_axis_manage.save() self.tariff_view_package = Tariff( name='View Package 1 min', description='View Package Description...', cost=1.0, duration=2, is_controlled=False, ) self.tariff_view_package.save() self.tariff_view_time = Tariff( name='View Package Time', description='View Package Description...', cost=1.0, is_controlled=False, ) self.tariff_view_time.save() self.tariff_manage_package = Tariff( name='Manage Package 1 min', description='Manage Package Description...', cost=2.0, duration=2, is_controlled=True, ) self.tariff_manage_package.save() self.tariff_manage_time = Tariff( name='Manage Package Time', description='Manage Package Description...', cost=2.0, is_controlled=True, ) self.tariff_manage_time.save() for i in xrange(1, 4): user = User.create_user(email='*****@*****.**' % i, password='******') user.cash = 1000000.0 user.save() camera = Camera( name='Test Billing Camera %i' % i, owner=user, type=self.camera_type_axis_manage, stream_name='boston', camera_management_host='localhost.boston.com', camera_management_username='******', camera_management_password='******', is_view_enabled=True, is_view_public=True, is_view_paid=True, is_management_enabled=True, is_management_public=True, is_management_paid=True, is_managed=True, management_packet_tariff=self.tariff_manage_package, management_time_tariff=self.tariff_manage_time, view_packet_tariff=self.tariff_view_package, view_time_tariff=self.tariff_view_time, ) camera.save()