#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (C) 2010-2016 Étienne Loks # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # See the file COPYING for details. import json from django.db.models import Q from django.http import HttpResponse from django.utils.translation import ugettext_lazy as _ import models from ishtar_common.views import get_item, new_item, show_item from wizards import * from ishtar_common.forms import FinalForm from forms import * get_container = get_item(models.Container, 'get_container', 'container') show_container = show_item(models.Container, 'container') get_warehouse = get_item(models.Warehouse, 'get_warehouse', 'warehouse') show_warehouse = show_item(models.Warehouse, 'warehouse') new_warehouse = new_item(models.Warehouse, WarehouseForm) new_container = new_item(models.Container, ContainerForm) def autocomplete_warehouse(request): if not request.user.has_perm('ishtar_common.view_warehouse', models.Warehouse)\ and not request.user.has_perm( 'ishtar_common.view_own_warehouse', models.Warehouse): return HttpResponse(mimetype='text/plain') if not request.GET.get('term'): return HttpResponse(mimetype='text/plain') q = request.GET.get('term') query = Q() for q in q.split(' '): extra = Q(name__icontains=q) | \ Q(warehouse_type__label__icontains=q) query = query & extra limit = 15 warehouses = models.Warehouse.objects.filter(query)[:limit] data = json.dumps([{'id': warehouse.pk, 'value': unicode(warehouse)} for warehouse in warehouses]) return HttpResponse(data, mimetype='text/plain') def autocomplete_container(request): if not request.user.has_perm('ishtar_common.view_warehouse', models.Warehouse)\ and not request.user.has_perm( 'ishtar_common.view_own_warehouse', models.Warehouse): return HttpResponse(mimetype='text/plain') if not request.GET.get('term'): return HttpResponse(mimetype='text/plain') q = request.GET.get('term') query = Q() for q in q.split(' '): extra = Q(container_type__label__icontains=q) | \ Q(container_type__reference__icontains=q) | \ Q(reference__icontains=q) | \ Q(location__name=q) | \ Q(location__town=q) query = query & extra limit = 15 containers = models.Container.objects.filter(query)[:limit] data = json.dumps([{'id': container.pk, 'value': unicode(container)} for container in containers]) return HttpResponse(data, mimetype='text/plain') warehouse_packaging_wizard = PackagingWizard.as_view([ ('seleccontainer-packaging', ContainerFormSelection), ('base-packaging', BasePackagingForm), # ('multiselecitems-packaging', FindPackagingFormSelection), ('final-packaging', FinalForm)], label=_(u"Packaging"), url_name='warehouse_packaging',) warehouse_creation_wizard = WarehouseWizard.as_view([ ("warehouse-warehouse_creation", WarehouseForm), ('divisions-warehouse_creation', SelectedDivisionFormset), ('final-warehouse_creation', FinalForm)], label=_(u"Warehouse creation"), url_name='warehouse_creation', ) warehouse_modification_wizard = WarehouseModificationWizard.as_view([ ('selec-warehouse_modification', WarehouseFormSelection), ("warehouse-warehouse_modification", WarehouseForm), ('divisions-warehouse_modification', SelectedDivisionFormset), ('final-warehouse_modification', FinalForm)], label=_(u"Warehouse modification"), url_name='warehouse_modification', ) container_localisation_wizard = LocalisationWizard.as_view([ ('seleccontainer-container_localisation', ContainerFormSelection), ('localisation-container_localisation', LocalisationForm), ('final-container_localisation', FinalForm)], label=_(u"Container localisation"), url_name='container_localisation', ) """ warehouse_packaging_wizard = ItemSourceWizard.as_view([ ('selec-warehouse_packaging', ItemsSelection), ('final-warehouse_packaging', FinalForm)], url_name='warehouse_packaging',) """