Exemplo n.º 1
0
 def get(self, request, **kwargs):
     self.context['back'] = BreadcrumbsPath(request).before_page(request)
     all_names = CartridgeType.objects.all().order_by('pk')
     page_size = self.items_per_page()
     self.context['page_size'] = page_size
     self.context['items'] = self.pagination(all_names, page_size)
     return render(request, 'docs/types_list.html', self.context)
Exemplo n.º 2
0
def change_password(request):
    """Смена пароля пользователя.
    """
    context = {}
    context['back'] = BreadcrumbsPath(request).before_page(request)
    uid = request.GET.get('id', '')
    try:
        uid = int(uid)
    except ValueError:
        uid = 0

    try:
        user_object = AnconUser.objects.get(pk=uid)
    except AnconUser.DoesNotExist:
        raise Http404

    context['username'] = user_object.username

    if request.method == 'POST':
        form = ChangePassword(request.POST)
        if form.is_valid():
            data_in_post = form.cleaned_data
            passwd = data_in_post.get('password1')
            if not settings.DEMO:
                # если выбран режим демонстрации, то менять пароль не разрешаем.
                user_object.set_password(passwd)
                user_object.save()
            return HttpResponseRedirect(reverse('auth:manage_users'))
        else:
            context['form'] = form
    else:
        context['form'] = ChangePassword()
    return render(request, 'accounts/change_password.html', context)
Exemplo n.º 3
0
def add_firm(request):
    """
    """
    back = BreadcrumbsPath(request).before_page(request)
    if request.method == 'POST':
        form_obj = FirmTonerRefillF(request.POST)
        if form_obj.is_valid():
            data_in_post = form_obj.cleaned_data
            m1 = FirmTonerRefill(
                firm_name=data_in_post['firm_name'],
                firm_city=data_in_post['firm_city'],
                firm_contacts=data_in_post['firm_contacts'],
                firm_address=data_in_post['firm_address'],
                firm_comments=data_in_post['firm_comments'],
            )
            m1.save()
            messages.success(
                request,
                _('Firm "%(firm_name)s" success added.') %
                {'firm_name': data_in_post['firm_name']})
    else:
        form_obj = FirmTonerRefillF()
    return render(request, 'index/add_firm.html', {
        'form': form_obj,
        'back': back
    })
Exemplo n.º 4
0
 def get(self, request, **kwargs):
     self.context['back'] = BreadcrumbsPath(request).before_page(request)
     all_c = City.objects.all().order_by('pk')
     page_size = self.items_per_page()
     self.context['page_size'] = page_size
     self.context['items'] = self.pagination(all_c, page_size)
     return render(request, 'docs/cities.html', self.context)
Exemplo n.º 5
0
def edit_cartridge_comment(request):
    """Добавляем комментарий к картриджу.
    """
    item_id = request.GET.get('id', '')
    back = BreadcrumbsPath(request).before_page(request)
    try:
        item_id = int(item_id)
    except ValueError:
        item_id = 0
    try:
        cartridge_object = CartridgeItem.objects.get(pk=item_id)
    except CartridgeItem.DoesNotExist:
        raise Http404

    if request.method == 'POST':
        form = EditCommentForm(data=request.POST)
        if form.is_valid():
            cartridge_object.comment = form.cleaned_data.get('comment')
            cartridge_object.save()
            return HttpResponseRedirect(back)
    else:
        comment = cartridge_object.comment
        form = EditCommentForm(initial={'comment': comment})
    return render(request, 'index/edit_cartridge_comment.html', {
        'form': form,
        'back': back
    })
Exemplo n.º 6
0
def add_cartridge_name(request):
    back = BreadcrumbsPath(request).before_page(request)
    if request.method == 'POST':
        form_obj = AddCartridgeName(request.POST)
        if form_obj.is_valid():
            data_in_post = form_obj.cleaned_data
            cart_name = data_in_post.get('cart_itm_name', '')
            cart_name = cart_name.strip()
            if CartridgeItemName.objects.filter(
                    cart_itm_name__iexact=cart_name):
                # если имя расходника уже занято
                messages.error(
                    request,
                    _('%(cart_name)s already exists') %
                    {'cart_name': cart_name})
            else:
                # добавляем новый тип расходного материала
                form_obj.save()
                messages.success(
                    request,
                    _('%(cart_name)s success added') %
                    {'cart_name': cart_name})
            return HttpResponseRedirect(request.path)
    else:
        form_obj = AddCartridgeName()
    return render(request, 'index/add_name.html', {
        'form': form_obj,
        'back': back
    })
Exemplo n.º 7
0
def edit_city(request):
    """Редактирование названия города.
    """
    context = dict()
    context['back'] = BreadcrumbsPath(request).before_page(request)
    select = request.GET.get('select', 0)
    try:
        m1 = City.objects.get(pk=select)
    except City.DoesNotExist:
        return Http404
    if request.method == 'POST':
        form = CityE(request.POST)
        if form.is_valid():
            data_in_post = form.cleaned_data
            m1.city_name = data_in_post['city_name']
            m1.save()
            messages.success(
                request,
                _('City "%(city)s" success edited.') %
                {'city': data_in_post['city_name']})
            return redirect(
                reverse('docs:edit_city') + '?select=' + str(select))
        else:
            context['form'] = CityE(request.POST)
    else:
        context['form'] = CityE(initial={
            'city_name': m1.city_name,
        })
    return render(request, 'docs/edit_city.html', context)
Exemplo n.º 8
0
def edit_firm(request):
    """
    """
    back = BreadcrumbsPath(request).before_page(request)
    firm_id = request.GET.get('select', '')
    firm_id = firm_id.strip()
    if firm_id:
        try:
            firm_id = int(firm_id)
        except ValueError:
            firm_id = 0
    else:
        firm_id = 0

    if request.method == 'POST':
        form_obj = FirmTonerRefillF(request.POST)
        if form_obj.is_valid():
            data_in_post = form_obj.cleaned_data
            m1 = FirmTonerRefill.objects.get(pk=firm_id)
            m1.firm_name = data_in_post['firm_name']
            m1.firm_city = data_in_post['firm_city']
            m1.firm_contacts = data_in_post['firm_contacts']
            m1.firm_address = data_in_post['firm_address']
            m1.firm_comments = data_in_post['firm_comments']
            m1.save(update_fields=[
                'firm_name', 'firm_city', 'firm_contacts', 'firm_address',
                'firm_comments'
            ])

            return HttpResponseRedirect(reverse('index:toner_refill'))

    try:
        firm = FirmTonerRefill.objects.get(pk=firm_id)
    except FirmTonerRefill.DoesNotExist:
        raise Http404

    form_obj = FirmTonerRefillF(
        initial={
            'firm_name': firm.firm_name,
            'firm_city': firm.firm_city,
            'firm_contacts': firm.firm_contacts,
            'firm_address': firm.firm_address,
            'firm_comments': firm.firm_comments
        })
    return render(request, 'index/edit_firm.html', {
        'firm': firm,
        'form': form_obj,
        'back': back
    })
Exemplo n.º 9
0
def add_empty_cartridge_from_barcode_scanner(request):
    """Добавление пустых РМ с сканера штрих кодов.
    """
    if not request.user.departament:
        return render(request, 'index/ou_not_set.html', dict())
    context = dict()
    context['debug'] = False
    back = BreadcrumbsPath(request).before_page(request)
    current_day = str(timezone.now().day) + '/' + str(
        timezone.now().month) + '/' + str(timezone.now().year)
    form = AddItemsFromBarCodeScanner()
    form.fields['set_date'].initial = current_day

    # отфильтровываем и показываем только договора поставки
    form.fields['doc'].queryset = SCDoc.objects.filter(
        departament=request.user.departament).filter(doc_type=1)
    form.fields['storages'].queryset = Storages.objects.filter(
        departament=request.user.departament)
    # выбор склада по умолчанию в выбранной организации
    default_sklad = Storages.objects.filter(
        departament=request.user.departament).filter(default=True)
    try:
        if default_sklad[0].pk:
            form.fields['storages'].initial = default_sklad[0].pk
    except IndexError:
        # если склад по-умолчанию не выбран, то пропускаем выбор склада
        pass

    # считываем данные для сессии
    if request.session.get('add_cartridges_empty_in_stock', False):
        # если в сессионной переменной уже что-то есть
        session_data = request.session.get('add_cartridges_empty_in_stock')

    else:
        # если сессионная basket_to_transfer_firm пуста или её нет вообще
        session_data = list()

    context['list_items'] = session_data
    context['form'] = form
    context['back'] = back
    context['action_type'] = 'empty'
    context['session_var'] = 'add_cartridges_empty_in_stock'
    #return render(request, 'index/add_cartridge_from_barcode_scanner.html', context)
    return render(request,
                  'index/add_empty_cartridge_from_barcode_scanner.html',
                  context)
Exemplo n.º 10
0
def from_firm_to_stock_with_barcode(request):
    """Возврат РМ из обслуживающей фирмы обратно на склад.
    """
    context = dict()
    MYDEBUG = False
    context['mydebug'] = MYDEBUG
    back = BreadcrumbsPath(request).before_page(request)
    form = MoveItemsToStockWithBarCodeScanner()
    #form.fields['storages'].queryset = Storages.objects.filter(departament=request.user.departament)
    # выбор склада по умолчанию в выбранной организации
    #default_sklad = Storages.objects.filter(departament=request.user.departament).filter(default=True)
    #try:
    #    if default_sklad[0].pk:
    #        form.fields['storages'].initial = default_sklad[0].pk
    #except IndexError:
    # если склад по-умолчанию не выбран, то пропускаем выбор склада
    #    pass

    # заполняем таблицу перемещаемых РМ значениями из сессии
    # это пригодится на случай случайной перезагрузки страницы пользователем
    session_data = request.session.get('basket_to_transfer_stock', False)
    show_list = list()
    if not session_data:
        session_data = []
    initial_numbers = str()
    for cart_pk in session_data:
        initial_numbers += str(cart_pk) + ', '
        try:
            cart_obj = CartridgeItem.objects.get(pk=cart_pk)
        except CartridgeItem.DoesNotExist:
            cart_obj = dict()
        else:
            cart_obj = {
                'pk': cart_obj.pk,
                'cart_number': cart_obj.cart_number,
                'cart_name': str(cart_obj.cart_itm_name)
            }
            show_list.append(cart_obj)

    form.fields['numbers'].initial = initial_numbers
    show_list.reverse()
    context['show_list'] = show_list
    context['back'] = back
    context['form'] = form
    return render(request, 'index/from_firm_to_stock_with_barcode.html',
                  context)
Exemplo n.º 11
0
def edit_name(request):
    """
    """
    context = dict()
    name_id = request.GET.get('id', '')
    context['back'] = BreadcrumbsPath(request).before_page(request)
    if not name_id:
        raise Http404
    try:
        name_id = int(name_id)
    except ValueError:
        name_id = 0

    try:
        m1 = CartridgeItemName.objects.get(pk=name_id)
    except CartridgeItemName.DoesNotExist:
        raise Http404

    if request.method == 'POST':
        form = EditName(request.POST)
        if form.is_valid():
            data_in_post = form.cleaned_data
            cartName = data_in_post.get('cartName', '')
            cartType = data_in_post.get('cartType', '')
            comment = data_in_post.get('comment', '')
            # сохраняем изменения в БД
            m1.cart_itm_name = cartName
            m1.cart_itm_type = cartType
            m1.comment = comment
            m1.save()
            return HttpResponseRedirect(reverse('docs:view_names'))
        else:
            # если в веденных данных есть ошибка
            context['form'] = form

    else:
        # если пользователь перишёл через GET запрос
        form = EditName(
            initial={
                'cartName': m1.cart_itm_name,
                'cartType': m1.cart_itm_type,
                'comment': m1.comment
            })
        context['form'] = form
    return render(request, 'docs/edit_name.html', context)
Exemplo n.º 12
0
def toner_refill(request):
    """Список контрагентов, которым производим передачу РМ на заправку.
    """
    BreadcrumbsPath(request)
    city_id = request.GET.get('city', '')
    cities = CityM.objects.all()

    try:
        city_id = int(city_id)
    except ValueError:
        city_id = 0

    city = ""
    if city_id != 0:
        try:
            city = CityM.objects.get(pk=city_id)
        except CityM.DoesNotExist:
            raise Http404

    if city:
        firms = FirmTonerRefill.objects.filter(firm_city=city)
    else:
        firms = FirmTonerRefill.objects.all()
    # завершаем работу с пагинацией
    new_list = [{'id': 0, 'city_name': _('Select all')}]
    for i in cities:
        tmp_dict = {'id': i.id, 'city_name': i.city_name}
        new_list.append(tmp_dict)

    cities = None
    if city_id:
        city_url_parametr = '?city=' + str(city_id) + '&'
    else:
        city_url_parametr = '?'
    return render(
        request, 'index/toner_refill.html', {
            'cities': new_list,
            'firms': firms,
            'select': city_id,
            'city_url': city_url_parametr,
        })
Exemplo n.º 13
0
def add_city(request):
    """Добавление города в справочник.
    """
    back = BreadcrumbsPath(request).before_page(request)
    if request.method == 'POST':
        form_obj = CityF(request.POST)
        if form_obj.is_valid():
            data_in_post = form_obj.cleaned_data
            m1 = City(city_name=data_in_post['city_name'])
            m1.save()
            messages.success(
                request,
                _('City "%(city)s" success added.') %
                {'city': data_in_post['city_name']})
            return redirect(reverse('docs:add_city'))
        else:
            form_obj = CityF(request.POST)
    else:
        form_obj = CityF()
    return render(request, 'docs/add_city.html', {
        'form': form_obj,
        'back': back
    })
Exemplo n.º 14
0
def from_firm_to_stock(request):
    """Возврашаем заправленные расходники обратно на с клад с помошью мыши.
    """
    context = dict()
    back = BreadcrumbsPath(request).before_page(request)
    checked_cartr = request.GET.get('select', '')
    tmp = ''
    list_cart = []
    if checked_cartr:
        checked_cartr = checked_cartr.split('s')
        checked_cartr = [int(i) for i in checked_cartr]
        tmp = checked_cartr
        for cart_id in tmp:
            list_cart.append(CartridgeItem.objects.get(pk=cart_id))
        list_length = len(list_cart)
        # преобразуем список в строку, для корректного отображения на html странице
        checked_cartr = str(checked_cartr)
        checked_cartr = checked_cartr[1:-1]
    else:
        # если кто-то зашел на страницу не выбрав расходники
        return HttpResponseRedirect(reverse('index:worked_firms'))
    context['checked_cartr'] = checked_cartr
    context['list_cart'] = list_cart
    context['list_length'] = list_length
    context['back'] = back
    # конструируем фильтр документов контрагентов
    tmp_cartridge = list_cart[
        0]  # для примера получаем первый элемент в списке, из него извлекаем контрагента
    firm = tmp_cartridge.filled_firm
    form = FromFirmToStock()
    form.fields['doc'].queryset = SCDoc.objects.filter(
        departament=request.user.departament).filter(doc_type=2).filter(
            firm=firm)
    context['form'] = form
    if request.method == 'POST':
        form = FromFirmToStock(request.POST)
        if form.is_valid():
            data_in_post = form.cleaned_data
            doc = data_in_post.get('doc')

        list_cplx = []
        with transaction.atomic():
            for inx in tmp:
                m1 = CartridgeItem.objects.get(pk=inx)
                # проверяем принадлежность перемещаемого РМ департаменту
                # пользователя.
                firm = str(m1.filled_firm)
                if m1.departament == request.user.departament:
                    filled_firm = firm
                    m1.filled_firm = None
                    m1.cart_status = 1
                    m1.cart_date_change = timezone.now()
                    m1.vote = False
                    m1.cart_number_refills = int(m1.cart_number_refills) + 1
                    m1.save()
                    repair_actions = request.POST.getlist('cart_' + str(inx))
                    list_cplx.append(
                        (m1.id, str(m1.cart_itm_name), filled_firm,
                         repair_actions, m1.cart_number))

        if list_cplx:
            sign_tr_filled_cart_to_stock.send(sender=None,
                                              list_cplx=list_cplx,
                                              request=request)

        # очищаем сессионную переменную 'basket_to_transfer_stock'
        try:
            request.session.get('basket_to_transfer_stock', False)
        except:
            request.session['basket_to_transfer_stock'] = None
        else:
            request.session['basket_to_transfer_stock'] = None

        # генерируем акт возвращения РМ
        jsoning_list = []
        money_sum = 0
        for inx in tmp:
            cart_number = CartridgeItem.objects.get(pk=inx).cart_number
            cart_name = CartridgeItem.objects.get(pk=inx).cart_itm_name
            repair_actions = request.POST.getlist('cart_' + str(inx))
            money_per_one = request.POST.getlist('cart_money_' + str(inx))
            money_sum += str2float(money_per_one[0]) if money_per_one else 0
            jsoning_list.append(
                [cart_number,
                 str(cart_name), repair_actions, money_per_one])
        jsoning_list = json.dumps(jsoning_list)

        money_sum = int(money_sum * 100)
        # устанавливаем потраченные деньги
        if doc:
            last_money = doc.spent
            last_money = last_money if last_money else 0
            last_money += money_sum
            doc.spent = last_money
            doc.save()

        # генерируем номер акта передачи на основе даты и его порядкового номера
        sender_acts = RefillingCart.objects.filter(
            departament=request.user.departament).count()
        # генерируем новый номер
        if sender_acts:
            act_number = sender_acts + 1
            act_number = str(timezone.now().year) + '_' + str(sender_acts)
        else:
            act_number = str(timezone.now().year) + '_1'

        # сохраняем в БД акт передачи РМ на заправку
        act_doc = RefillingCart(
            doc_type=2,  # документ возвращения с заправки
            number=act_number,
            date_created=timezone.now(),
            firm=firm,
            user=str(request.user),
            json_content=jsoning_list,
            money=money_sum,
            departament=request.user.departament,
            parent_doc=doc)
        act_doc.save()

        return HttpResponseRedirect(reverse('index:worked_firms'))
    return render(request, 'index/from_firm_to_stock.html', context)
Exemplo n.º 15
0
def add_type(request):
    """Добавление нового типа расходника, а также редактирование существующего
    """
    back = BreadcrumbsPath(request).before_page(request)
    cart_type_id = request.GET.get('id', '')
    if cart_type_id:
        try:
            cart_type_id = int(cart_type_id)
        except ValueError:
            cart_type_id = 0
        try:
            m1 = CartridgeType.objects.get(pk=cart_type_id)
        except CartridgeType.DoesNotExist:
            raise Http404
        else:
            form_update = True
    else:
        form_update = False

    if request.method == 'POST':

        if form_update:
            form_obj = AddCartridgeType(request.POST,
                                        update=form_update,
                                        initial={
                                            'cart_type': m1.cart_type,
                                            'comment': m1.comment
                                        })
        else:
            form_obj = AddCartridgeType(request.POST, update=form_update)

        if form_obj.is_valid():
            data_in_post = form_obj.cleaned_data
            cart_type = data_in_post['cart_type']
            cart_type_comment = data_in_post['comment']
            if cart_type_id:
                m1.cart_type = cart_type
                m1.comment = cart_type_comment
                m1.save()
                messages.success(
                    request,
                    _('%(cart_type)s success save') % {'cart_type': cart_type})
            else:
                m1 = CartridgeType(cart_type=cart_type,
                                   comment=cart_type_comment)
                m1.save()
                messages.success(
                    request,
                    _('New type %(cart_type)s success added') %
                    {'cart_type': cart_type})
            return HttpResponseRedirect(request.path)
        else:
            pass
    else:
        if cart_type_id:
            form_obj = AddCartridgeType(initial={
                'cart_type': m1.cart_type,
                'comment': m1.comment
            },
                                        update=form_update)
        else:
            form_obj = AddCartridgeType(update=form_update)
    return render(request, 'index/add_type.html', {
        'form': form_obj,
        'cart_type_id': cart_type_id,
        'back': back
    })
Exemplo n.º 16
0
def evaluate_service(request):
    """Оценить качество обслуживания контрагентом.
    """
    context = dict()
    context['back'] = BreadcrumbsPath(request).before_page(request)
    cart_id = request.GET.get('id', 0)
    cart_id = str2int(cart_id)
    try:
        node = CartridgeItem.objects.get(pk=cart_id)
    except CartridgeItem.DoesNotExist:
        raise Http404
    # проверяем принадлежность перемещаемого РМ департаменту
    # пользователя.
    try:
        root_ou = request.user.departament
        des = root_ou.get_descendants()
    except:
        pass

    if node.vote:
        context['error'] = True
        context['msg'] = _('Work has already estimated.')
        return render(request, 'index/evaluate_service.html', context)

    if node.departament in des:
        obj_evs = Events.objects.filter(
            departament=request.user.departament.pk).filter(
                cart_number=node.cart_number)
        obj_evs = obj_evs.filter(event_type='TF').order_by('-pk')
        if obj_evs:
            context['error'] = False
            firm_name = obj_evs[0].event_firm
            context['cart_id'] = node.pk
            context['cart_number'] = node.cart_number
            tmp_list = firm_name.split(':')
            context['firm'] = tmp_list[0]
            if len(tmp_list) == 1:
                # оставлена возможнасть поиска по имени для старых релизов программы
                try:
                    context['firm_id'] = FirmTonerRefill.objects.get(
                        firm_name=firm_name).pk
                except:
                    context['firm_id'] = -1

            elif len(tmp_list) == 2:
                firm_id = str2int(tmp_list[1])
                try:
                    context['firm_id'] = FirmTonerRefill.objects.get(
                        pk=firm_id).pk
                except:
                    context['firm_id'] = -1
            else:
                context['firm_id'] = -1

        else:
            context['error'] = True
            context['msg'] = _(
                'An object with number %(cart_num)s is not transmitted to the service.'
            ) % {
                'cart_num': node.cart_number
            }

    else:
        context['error'] = True
        context['msg'] = _(
            'An object with number %(cart_num)s belong to a different organizational unit.'
        ) % {
            'cart_num': node.cart_number
        }

    return render(request, 'index/evaluate_service.html', context)
Exemplo n.º 17
0
def delivery(request):
    """Списки договоров на поставку расходников
    """
    context = {}
    context['back'] = BreadcrumbsPath(request).before_page(request)
    # выбираем только договора обслуживания и поставки
    docs = SCDoc.objects.filter(departament=request.user.departament).filter(
        Q(doc_type=1) | Q(doc_type=2)).order_by('-pk')
    context['docs'] = docs
    if request.method == 'POST':
        form = AddDoc(request.POST)
        if form.is_valid():
            data_in_post = form.cleaned_data
            if request.GET.get('select', ''):
                # если пользователь производит редактирование и сохранение документа
                doc_id = request.GET.get('select', '')
                try:
                    doc_id = int(doc_id)
                except ValueError:
                    doc_id = 0

                try:
                    doc = SCDoc.objects.get(pk=doc_id)
                except SCDoc.DoesNotExist:
                    raise Http404

                # производим сохранения изменений
                doc.number = data_in_post.get('number', '')
                doc.date_of_signing = data_in_post.get('date', '')
                doc.firm = data_in_post.get('firm', '')
                doc.title = data_in_post.get('title', '')
                doc.short_cont = data_in_post.get('short_cont', '')
                doc_type = data_in_post.get('doc_type', '')
                doc.money = data_in_post.get('money', '')
                doc.save()
                messages.success(
                    request,
                    _('%(doc_num)s success saved.') % {'doc_num': doc.number})
            else:
                # если пользователь просто создаёт новый документ
                m1 = SCDoc.objects.create(
                    number=data_in_post.get('number', ''),
                    date_of_signing=data_in_post.get('date', 0),
                    date_created=timezone.now(),
                    firm=data_in_post.get('firm', ''),
                    title=data_in_post.get('title', ''),
                    short_cont=data_in_post.get('short_cont', ''),
                    money=data_in_post.get('money', ''),
                    doc_type=data_in_post.get('doc_type', ''),
                    departament=request.user.departament)
                messages.success(
                    request,
                    _('New %(doc_num)s success created.') %
                    {'doc_num': data_in_post.get('number', '')})

            context['form'] = form
            return HttpResponseRedirect(request.path)
        else:
            context['form'] = form
    elif request.method == 'GET':
        if request.GET.get('select', ''):
            context['edit'] = True
            doc_id = request.GET.get('select', '')
            try:
                doc_id = int(doc_id)
            except ValueError:
                doc_id = 0
            try:
                doc = SCDoc.objects.get(pk=doc_id)
            except SCDoc.DoesNotExist:
                raise Http404

            if doc.date_of_signing:
                date = str(doc.date_of_signing.day) + '/' + str(
                    doc.date_of_signing.month) + '/' + str(
                        doc.date_of_signing.year)
            else:
                date = ''
            money = doc.money if doc.money else 0
            money /= 100
            form = AddDoc(
                initial={
                    'number': doc.number,
                    'title': doc.title,
                    'money': money,
                    'short_cont': doc.short_cont,
                    'firm': doc.firm,
                    'doc_type': doc.doc_type,
                    'date': date
                })

            context['form'] = form

        elif request.GET.get('delete', ''):
            # ветка для удаления документа
            doc_id = request.GET.get('delete', '')
            try:
                doc_id = int(doc_id)
            except ValueError:
                doc_id = 0

            try:
                doc = SCDoc.objects.get(pk=doc_id)
            except SCDoc.DoesNotExist:
                raise Http404

            doc_number = doc.number
            doc.delete()

            messages.error(
                request,
                _('Document %(doc_number)s deleted!') %
                {'doc_number': doc_number})
            return HttpResponseRedirect(reverse('docs:delivery'))

        elif request.GET.get('show', ''):
            # ветка для просотра одного конкретного договора
            doc_id = request.GET.get('show', '')
            try:
                doc_id = int(doc_id)
            except ValueError:
                doc_id = 0
            try:
                doc = SCDoc.objects.filter(
                    departament=request.user.departament).filter(pk=doc_id)
            except SCDoc.DoesNotExist:
                raise Http404
            context['not_show_form'] = True
            context['docs'] = doc
        else:
            form = AddDoc()
            context['form'] = form
    else:
        # метод не поддерживается
        pass
    return render(request, 'docs/delivery.html', context)
Exemplo n.º 18
0
 def dispatch(self, *args, **kwargs):
     BreadcrumbsPath(args[0])
     return super(handbook, self).dispatch(*args, **kwargs)
Exemplo n.º 19
0
def view_cartridge_events(request):
    """Просмотр событий происходящих с данным картриджем.
    """
    context = dict()
    context['back'] = BreadcrumbsPath(request).before_page(request)
    return render(request, 'events/view_cartridge_events.html', context)
Exemplo n.º 20
0
def add_empty_cartridge(request):
    """Добавление пустых картриджей.
    """
    if not request.user.departament:
        return render(request, 'index/ou_not_set.html', dict())

    context = {}
    back = BreadcrumbsPath(request).before_page(request)
    current_day = str(timezone.now().day) + '/' + str(
        timezone.now().month) + '/' + str(timezone.now().year)
    context['back'] = back
    form_obj = AddItems()

    form_obj.fields['set_date'].initial = current_day
    # отфильтровываем и показываем только договора поставки
    form_obj.fields['doc'].queryset = SCDoc.objects.filter(
        departament=request.user.departament).filter(doc_type=1)
    form_obj.fields['storages'].queryset = Storages.objects.filter(
        departament=request.user.departament)
    # выбор склада по умолчанию в выбранной организации
    default_sklad = Storages.objects.filter(
        departament=request.user.departament).filter(default=True)
    try:
        if default_sklad[0].pk:
            form_obj.fields['storages'].initial = default_sklad[0].pk
    except IndexError:
        # если склад по-умолчанию не выбран, то пропускаем выбор склада
        pass

    context['form'] = form_obj
    session_data = request.session.get('empty_cart_list')
    if not session_data:
        # если в сессии нужные данные отсутствуют, то сразу рендерим форму
        return render(request, 'index/add_empty_cartridge.html', context)

    session_data = json.loads(session_data)
    simple_cache = dict()
    list_names = CartridgeItemName.objects.all()
    for elem in list_names:
        simple_cache[elem.pk] = elem.cart_itm_name
    list_items = list()
    for elem in session_data:
        try:
            title = str(SCDoc.objects.get(pk=elem[1]))
        except SCDoc.DoesNotExist:
            title = ''

        # избвавляемся от лишних апострофов при конвертрировании массива чисел
        # в строку
        acumulyator = str()
        for items in elem[2]:
            acumulyator += str(items) + ', '

        list_items.append({
            'name': simple_cache.get(elem[0]),
            'numbers': acumulyator,
            'title': title
        })

    context['session'] = render_to_string('index/add_over_ajax.html',
                                          context={'list_items': list_items})
    return render(request, 'index/add_empty_cartridge.html', context)