Ejemplo n.º 1
0
    def get_context_data(self, **kwargs):
        context_data = super().get_context_data(**kwargs)

        context_data.update({
            'page':
            context_data['page_obj'],
            'paginator_range':
            func.get_paginator_range(context_data['page_obj']),
            'url_paginator':
            self.get_paginator_url(),
            'has_perm':
            self.request.user.is_authenticated()
            and self.owner.has_perm(self.request.user),
            'item_id':
            self.owner.pk,
            'item_type':
            self.t,
            'pageNum':
            self.page,
            'url_parameter':
            self.owner.pk,
            'uploaderURL':
            self.get_uploader_url(),
            'structureURL':
            self.get_structure_url(),
            'removeURL':
            self.get_remove_url()
        })

        return context_data
Ejemplo n.º 2
0
def get_favorite(request, page=1):

    if request.POST:
        if len(request.POST) > 1:
            toDelete = request.POST.getlist("del[]")
            cabinet = Cabinet.objects.filter(user=request.user)
            favorites = Favorite.objects.filter(c2p__parent=cabinet, p2c__child__in=toDelete)
            favorites.delete()

    user = request.user
    curr_url = "favorite"
    cabinet = Cabinet.objects.filter(user=user)
    favorites = Favorite.active.get_active_related().filter(c2p__parent=cabinet).order_by('-create_date')
    products = Product.active.get_active_related().filter(c2p__parent__c2p__parent=cabinet, c2p__parent=favorites).order_by("-c2p__parent__create_date")

    attr = ("IMAGE", 'NAME', 'CURRENCY', 'COST', 'COUPON_DISCOUNT', 'DISCOUNT')

    result = func.setPaginationForItemsWithValues(products, *attr, page_num=5, page=page)
    favoriteList = result[0]
    for favorite in favoriteList.values():
        real_cost = _getRealCost(favorite)
        favorite.update({'AFTER_DISCOUNT': real_cost})

    page = result[1]
    paginator_range = func.get_paginator_range(page)
    url_paginator = "profile:favorite_paginator"



    return render_to_response('Cabinet/favorite.html', {'user': user, 'curr_url': curr_url,
                                                        'favoriteList': favoriteList, 'page': page,
                                                        'paginator_range': paginator_range,
                                                        'url_paginator': url_paginator},
                                                         context_instance=RequestContext(request))
Ejemplo n.º 3
0
def _tab_structure(request, company, page=1):
    """
    Company view's tab 'Structure' processing.
    """
    organization = get_object_or_404(Company, pk=company)
    if request.is_ajax() and not request.user.is_anonymous() \
        and request.user.is_authenticated():

        item_id = request.POST.get("id", None)
        name = request.POST.get('name', '').strip()
        action = request.POST.get("action", None)
        request_type = request.POST.get("type", None)

        if not (request_type in ('department', 'vacancy')) and action is not None:
            return HttpResponseBadRequest()

        if not organization.has_perm(request.user) and action is not None:
            return HttpResponseBadRequest()

        if action == "add" and len(name) > 0:
            if request_type == 'department':
                organization.create_department(name, request.user)
            elif item_id is not None:  # new vacancy
                obj = get_object_or_404(organization.departments, pk=item_id)
                organization.create_vacancy(name, obj, request.user)

        elif action == "edit" and item_id is not None and len(name) > 0:
            if request_type == 'department':
                obj = get_object_or_404(organization.departments, pk=item_id)
            else:
                obj = get_object_or_404(organization.vacancies, pk=item_id)
            obj.name = name
            obj.save()
        elif action == "remove" and item_id is not None:
            if request_type == 'department':
                obj = get_object_or_404(organization.departments, pk=item_id)
            else:
                obj = get_object_or_404(organization.vacancies, pk=item_id)

            obj.delete()

    departments = organization.departments.all().prefetch_related('vacancies').order_by('name')

    paginator = Paginator(departments, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)
    url_paginator = "companies:tab_structure_paged"

    template_params = {
        'has_perm': organization.has_perm(request.user),
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': company,
        'item_pk': company,
    }

    return render(request, 'b24online/Companies/tabStructure.html', template_params)
Ejemplo n.º 4
0
def reviewList(request):
    page = request.GET.get('page', 1)
    result = func.getItemsListWithPagination("Review", "NAME", "ACTIVE_FROM", "DETAIL_TEXT", "IMAGE", page=page)
    reviewList = result[0]
    page = result[1]
    paginator_range = func.get_paginator_range(page)

    user = request.user
    return render_to_response("Reviews/index.html", locals())
Ejemplo n.º 5
0
    def get_context_data(self, **kwargs):
        context_data = super().get_context_data()
        context_data.update(url_paginator=self.get_url_paginator(),
                            paginator_range=func.get_paginator_range(
                                context_data['page_obj']),
                            title=self.get_title(),
                            current_section=self.get_current_section())

        return context_data
Ejemplo n.º 6
0
    def get_paged_data(self):
        paginator = Paginator(self.get_queryset(), self.on_page, allow_empty_first_page=True)
        page = paginator.page(self.current_page)
        paginator, page, queryset, is_paginated = (paginator, page, page.object_list, page.has_other_pages())

        return {
            'page': page,
            'on_page': self.on_page,
            'paginator': paginator,
            'page_obj': page,
            'is_paginated': is_paginated,
            'paginator_range': func.get_paginator_range(page),
            self.queryset_key: queryset
        }
Ejemplo n.º 7
0
    def get_context_data(self, **kwargs):
        context = super(ItemsList, self).get_context_data(**kwargs)

        context.update({
            'applied_filters':
            self.applied_filters,
            'sortField1':
            self.sortField1,
            'sortField2':
            self.sortField2,
            'order1':
            self.order1,
            'order2':
            self.order2,
            'page':
            context['page_obj'],
            'paginator_range':
            func.get_paginator_range(context['page_obj']),
            'url_parameter':
            self.url_parameter,
            'url_paginator':
            self.url_my_paginator if self.is_my() else self.url_paginator,
            'items_perms':
            None,  # Deprecated
            'current_path':
            self.request.get_full_path(),
            'addNew':
            '' if not self.get_add_url() else reverse(self.get_add_url()),
            'current_section':
            self.current_section,
            'styles':
            self.styles,
            'scripts':
            self.scripts,
            'available_filters':
            list(self.filter_list.keys()),
            'model':
            self.model.__name__,
            'is_my':
            self.is_my(),
        })

        if isinstance(context['object_list'], SearchEngine):
            object_ids = [hit.django_id for hit in context['object_list']]
            context['object_list'] = \
                self.optimize_queryset(self.model.objects.filter(pk__in=object_ids)) \
                    .order_by(*self._get_sorting_params())

        return context
Ejemplo n.º 8
0
def getAllNewProducts(request, page=1):


    products = Product.objects.filter(sites=settings.SITE_ID).order_by("-pk")
    result = func.setPaginationForItemsWithValues(products, "NAME", 'DETAIL_TEXT', 'IMAGE', 'COST', 'CURRENCY',
                                         page_num=15, page=page)
    products_list = result[0]
    products_ids = [key for key, value in products_list.items()]
    companies = Company.objects.filter(p2c__child_id__in=products_ids)
    items = Item.objects.filter(p2c__child_id__in=companies, p2c__type="dependence", pk__in=Country.objects.all(),
                                 p2c__child__p2c__child__in=products_ids).values("country", "p2c__child_id",
                                                                                 'p2c__child__p2c__child', 'pk')
    items_id =[]
    for item in items:
        items_id.append(item['pk'])
        items_id.append(item['p2c__child_id'])

    items_id = set(items_id)
    itemsWithAttribute = Item.getItemsAttributesValues(("NAME", "IMAGE"), items_id)

    for item in items:
        products_list[item['p2c__child__p2c__child']].update({'COMPANY_NAME': itemsWithAttribute[item['p2c__child_id']]['NAME']})
        products_list[item['p2c__child__p2c__child']].update({'COMPANY_IMAGE': itemsWithAttribute[item['p2c__child_id']]['IMAGE']})
        products_list[item['p2c__child__p2c__child']].update({'COMPANY_ID': item['p2c__child_id']})
        products_list[item['p2c__child__p2c__child']].update({'COUNTRY_NAME': itemsWithAttribute[item['pk']]['NAME']})
        products_list[item['p2c__child__p2c__child']].update({'COUNTRY_ID': item['pk']})




    page = result[1]
    paginator_range = func.get_paginator_range(page)

    url_paginator = "products:products_paginator"












    return render_to_response("Product/new.html", {'products_list': products_list, 'page': page,
                                                   'paginator_range':paginator_range, 'url_paginator': url_paginator,
                                                   'user': request.user}, context_instance=RequestContext(request))
Ejemplo n.º 9
0
def _getComment(parent_id, page):
    comments = Comment.getCommentOfItem(parent_id=parent_id)
    comments = comments.order_by('-pk')
    result = func.setPaginationForItemsWithValues(comments, "DETAIL_TEXT", page_num=3, page=page)
    commentsList = result[0]

    for id ,comment in commentsList.items():
        comment['User'] = comments.get(pk=id).create_user
        comment['Date'] = comments.get(pk=id).create_date
    page = result[1]


    paginator_range = func.get_paginator_range(page)
    commentsList = OrderedDict(sorted(commentsList.items(), reverse=True))

    return commentsList, paginator_range, page
Ejemplo n.º 10
0
def _tab_innovation_projects(request, tpp, page=1):
    projects = InnovationProject.get_active_objects().filter(organization=tpp)
    paginator = Paginator(projects, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "tpp:tab_innov_paged"

    template_params = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': tpp
    }

    return render(request, 'b24online/Companies/tabInnov.html', template_params)
Ejemplo n.º 11
0
def _tab_tenders(request, tpp, page=1):
    tenders = Tender.objects.filter(organization=tpp)
    paginator = Paginator(tenders, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "tpp:tab_tenders_paged"

    template_arams = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': tpp
    }

    return render(request, 'b24online/Tpp/tabTenders.html', template_arams)
Ejemplo n.º 12
0
def _tab_exhibitions(request, tpp, page=1):
    exhibitions = Exhibition.get_active_objects().filter(organization=tpp)
    paginator = Paginator(exhibitions, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "tpp:tab_exhibitions_paged"

    template_params = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': tpp
    }

    return render(request, 'b24online/Tpp/tabExhibitions.html', template_params)
Ejemplo n.º 13
0
def _tab_video(request, company, page=1):
    video = Video.get_active_objects().filter(organization=company)
    paginator = Paginator(video, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "companies:tab_video_paged"

    template_params = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': company
    }

    return render(request, 'b24online/Companies/tabVideo.html', template_params)
Ejemplo n.º 14
0
def _tabs_exhibitions(request, company, page=1):
    exhibitions = Exhibition.get_active_objects().filter(organization=company)
    paginator = Paginator(exhibitions, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "companies:tab_exhibitions_paged"

    template_params = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': company
    }

    return render(request, 'b24online/Companies/tabExhibitions.html', template_params)
Ejemplo n.º 15
0
def _tab_proposals(request, company, page=1):
    proposals = BusinessProposal.get_active_objects().filter(organization=company)
    paginator = Paginator(proposals, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "companies:tab_proposal_paged"

    template_params = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': company
    }

    return render(request, 'b24online/Companies/tabProposal.html', template_params)
Ejemplo n.º 16
0
def _tab_b2c_products(request, company, page=1):
    products = B2CProduct.get_active_objects().filter(company=company)
    paginator = Paginator(products, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "companies:tab_b2c_products_paged"

    template_params = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': company
    }

    return render(request, 'b24online/Companies/tab_B2CProducts.html', template_params)
Ejemplo n.º 17
0
def _tab_companies(request, tpp, page=1):
    companies = Company.get_active_objects().filter(parent=tpp)
    paginator = Paginator(companies, 10)

    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "tpp:tab_companies_paged"

    template_params = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': tpp
    }

    return render(request, 'b24online/Tpp/tabCompanies.html', template_params)
Ejemplo n.º 18
0
def get_order_history(request, page=1):
    #------order history of user with pagination-----#

    user = request.user
    curr_url = "order_history"
    cabinet = Cabinet.objects.filter(user=user)
    orders = Order.objects.filter(c2p__parent__in=cabinet).order_by("-pk")
    attr = ("IMAGE", 'NAME', 'CURRENCY', 'COST', 'QUANTITY', 'ADDRESS_CITY', 'ADDRESS_COUNTRY', 'ADDRESS')
    result = func.setPaginationForItemsWithValues(orders, *attr, page_num=5, page=page)
    orderList = result[0]
    #Paginator
    page = result[1]
    paginator_range = func.get_paginator_range(page)
    url_paginator = "profile:paginator"

    return render_to_response("Cabinet/orderHistory.html", {"user": user, 'curr_url': curr_url,
                                                            'orderList': orderList, 'paginator_range': paginator_range,
                                                            'url_paginator': url_paginator, 'page': page},
                              context_instance=RequestContext(request))
Ejemplo n.º 19
0
def newsList(request, page=1):
    user = request.user

    page = page
    result = func.getItemsListWithPagination("News",
                                             "NAME",
                                             "Active_From",
                                             "DETAIL_TEXT",
                                             "IMAGE",
                                             page=page)
    newsList = result[0]
    page = result[1]
    paginator_range = func.get_paginator_range(page)

    url_paginator = "news:paginator"

    contrySorted = func.sortByAttr("Country", "NAME")
    sorted_id = [coun.id for coun in contrySorted]
    countryList = Item.getItemsAttributesValues(("NAME", ), sorted_id)

    return render_to_response("News/index.html", locals())
Ejemplo n.º 20
0
def _tab_staff(request, tpp, page=1):
    organization = get_object_or_404(Chamber, pk=tpp)

    if request.is_ajax() and not request.user.is_anonymous() and request.user.is_authenticated():
        action = request.POST.get('action', False)
        action = action if action else request.GET.get('action', None)

        if not organization.has_perm(request.user) and action is not None:
            return HttpResponseBadRequest()

        if action == "department":
            departments = [{'name': _("Select department"), "value": ""}]

            for department in organization.departments.all().order_by('name'):
                departments.append({"name": department.name, "value": department.pk})

            return JsonResponse(departments, safe=False)

        elif action == "vacancy":
            department = int(request.GET.get("department", 0))

            if department <= 0:
                return HttpResponseBadRequest()

            vacancies = [{'name': _("Select vacancy"), "value": ""}]

            for department in organization.departments.all():
                for vacancy in department.vacancies.all().order_by('name'):
                    vacancies.append({"name": vacancy.name, "value": vacancy.pk})

            return JsonResponse(vacancies, safe=False)

        elif action == "add":
            user = request.POST.get('user', "").strip()
            department = int(request.POST.get('department', 0))
            vacancy = int(request.POST.get('vacancy', 0))

            if not user or department <= 0 or vacancy <= 0:
                return HttpResponseBadRequest()

            try:
                user = get_user_model().objects.get(email=user, is_active=True)
                vacancy = Vacancy.objects.get(pk=vacancy, department__organization=organization)
            except ObjectDoesNotExist:
                return HttpResponseBadRequest(_('User not found'))

            # One user for vacancy
            if vacancy.user:
                return HttpResponseBadRequest(_("The vacancy already have employee attached"))

            if user.work_positions.filter(department__organization=organization).exists():
                return HttpResponseBadRequest(_("The user already employed in your organization"))

            admin = bool(int(request.POST.get('admin', 0)))
            vacancy.assign_employee(user, admin)

        elif action == "remove":
            cabinet = int(request.POST.get('id', 0))

            if cabinet > 0:
                user = get_object_or_404(get_user_model(), pk=cabinet)
                vacancy = get_object_or_404(Vacancy, user=user, department__organization=organization)
                vacancy.remove_employee()

    users = get_user_model().objects.filter(is_active=True, work_positions__department__organization=organization).distinct() \
        .select_related('profile').prefetch_related('work_positions', 'work_positions__department')

    paginator = Paginator(users, 10)
    page = paginator.page(page)
    paginator_range = func.get_paginator_range(page)

    url_paginator = "tpp:tab_staff_paged"

    template_params = {
        'page': page,
        'paginator_range': paginator_range,
        'url_paginator': url_paginator,
        'url_parameter': tpp,
        'item_pk': tpp,
        'organization': organization,
        'has_perm': organization.has_perm(request.user)
    }

    return render(request, 'b24online/Tpp/tabStaff.html', template_params)