def create(self, data): pilgrim = self.get_pilgrim(data) size = Cell.SIZE_SMALL if data.get('bag_count') else Cell.SIZE_LARGE free_cell = ReceptionHelper().assign_cell(size) if not free_cell: raise ValidationError( { api_settings.NON_FIELD_ERRORS_KEY: [_("All spaces are busy")] }, code='no_space') delivery_data = { 'pilgrim': pilgrim, 'taker': self.context['request'].user } delivery = Delivery.objects.create(**delivery_data) pack_data = sub_dict(data, ['bag_count', 'suitcase_count', 'pram_count']) pack_data['delivery'] = delivery pack_data['cell'] = free_cell pack = Pack.objects.create(**pack_data) rh = ReceptionHelper() rh.print(pack) return data
def test_report(self): rh = ReceptionHelper() result = rh.report() expected_dict = { 'in_house': { 3: 1, 6: 0, 24: 0, 48: 0 }, 'distribution': { 'total': 1, None: 1 } } self.assertDictEqual(expected_dict, result)
def test_export(self): path = ReceptionHelper().export_data() logger.info(path)
def test_print(self): rh = ReceptionHelper() t = timezone.now() rh.print(self.pack) print((timezone.now() - t))
def test_assign_large(self): cell = ReceptionHelper().assign_cell(Cell.SIZE_LARGE) code = (cell.row.cabinet.code, cell.row.code, cell.code) self.assertEqual(code, (2, 2, 2))
def test_assign_small(self): cell = ReceptionHelper().assign_cell(Cell.SIZE_SMALL) code = (cell.row.cabinet.code, cell.row.code, cell.code) self.assertEqual(code, (2, 2, 3))
def export_store(self, *args, **kwargs): path = ReceptionHelper().export_data( exit_type=Delivery.DELIVERED_TO_STORE) return Response({'url': os.path.join(settings.EXPORT_URL, path)})
def export(self, *args, **kwargs): path = ReceptionHelper().export_data() return Response({'url': os.path.join(settings.EXPORT_URL, path)})
def start(self, request, *args, **kwargs): result = ReceptionHelper().admin_report() return Response(result, status=status.HTTP_200_OK)
def reprint(self, request, hash_id): pack = Pack.objects.get(delivery__taker=request.user, delivery__hash_id=hash_id) rh = ReceptionHelper() rh.print(pack) return Response({}, status.HTTP_200_OK)