def save(self, commit=True): door = DoorService.update( id=self.cleaned_data[ID], name=self.cleaned_data[NAME], access_id=self.cleaned_data[ACCESS_ID] ) return door
def detach_door(controller_id: int, door_id: int): controller = get(controller_id) door = DoorService.get(door_id) if controller.doors.filter(id=door_id) == 0: raise exceptions.DoorNotFound try: controller.doors.remove(door) except: raise exceptions.ControllerManageFailed
def attach_door(controller_id: int, door_id: int): controller = get(controller_id) door = DoorService.get(door_id) if controller.doors.filter(id=door_id).count() > 0: raise exceptions.DoorNotFound try: controller.doors.add(door) except: raise exceptions.ControllerManageFailed
def detach_door(place_id: int, door_id: int): place = get(place_id) door = DoorService.get(door_id) if place.doors.filter(id=door_id).count() == 0: raise exceptions.PlaceManageFailed try: place.doors.remove(door) except: raise exceptions.PlaceManageFailed
def __init__(self, *args, **kwargs): door_id = kwargs.pop('door_id', None) super(PlaceDetachForm, self).__init__(*args, **kwargs) if door_id: self.fields['door_id'].initial = door_id places = DoorService.get_attached_places(id=door_id) self.fields['places'].queryset = places self.fields['places'].empty_label = None
def __init__(self, *args, **kwargs): door_id = kwargs.pop('door_id', None) super(ControllerDetachForm, self).__init__(*args, **kwargs) if door_id: self.fields['door_id'].initial = door_id controllers = DoorService.get_attached_controllers(id=door_id) self.fields['controllers'].queryset = controllers self.fields['controllers'].empty_label = None
class DoorMultipleChoiceForm(forms.Form): doors = forms.ModelMultipleChoiceField(queryset=DoorService.get_none(), widget=CheckboxSelectMultiple)
def get_queryset(self): try: return DoorService.get_attached_controllers(id=self.kwargs[ID]) except: raise Http404
def delete(self, request: HttpRequest, id: str): id = self.parse_int_pk(id) DoorService.delete(id) return ApiResponse.success()
def put(self, request: HttpRequest, id: str, dto: DoorInDto): id = self.parse_int_pk(id) door = DoorService.update(id, dto.name, dto.access_id) return ApiResponse.success(DoorOutDto.from_door(door))
def get(self, request: HttpRequest, id: str): id = self.parse_int_pk(id) door = DoorService.get(id) return ApiResponse.success(DoorOutDto.from_door(door))
def post(self, request: HttpRequest, dto: DoorInDto): door = DoorService.create(dto.name, dto.access_id) return ApiResponse.success(DoorOutDto.from_door(door))
def get(self, request: HttpRequest): doors = DoorService.get_all() doors_dto = list([DoorOutDto.from_door(d) for d in doors]) return ApiResponse.success(doors_dto)