Ejemplo n.º 1
0
    def post(self, request, *args, **kwargs):
        form = HistoryForm(
            data=request.POST
        )
        self.email = None
        if form.is_valid():
            self.email = form.cleaned_data.get('email')
            history_uuid = str(uuid.uuid4())
            request.session['history_info'] = {history_uuid: self.email}
            domain = get_current_site().domain
            history_url = '{0}://{1}{2}' . format(
                request.scheme,
                domain,
                reverse('questionnaires:case_list',
                        kwargs={'uuid': history_uuid}))

            subject = _('The request about Questionnaires history')
            message = render_to_string(
                        'usersites/Questionnaires/historyEmail.txt',
                        {'history_url': history_url}
                    )
            smail = EmailMessage(
                subject, 
                message,
                settings.DEFAULT_FROM_EMAIL,
                [self.email,], 
            )
            if not getattr(settings, 'NOT_SEND_EMAIL', False):
                smail.send()
        return self.render_to_response(
            self.get_context_data(form=form, *args, **kwargs)
        )
Ejemplo n.º 2
0
    def process_response(self, request, response):
        """
        Process the events queue and return HTTPResponse.
        """

        if not settings.ANALYTIC:
            return response

        request_uuid = getattr(request, '_uuid', None)
        if request_uuid:
            _ip = GeoIPHelper.get_random_ip() \
                    if getattr(settings, 'DEBUG_RANDOM_IPS', False) \
                        else GeoIPHelper.get_request_ip(request)
            if _ip:
                event_data = {}
                event_data['ip_address'] = _ip
                event_site = get_current_site()
                event_data['site_id'] = event_site.pk if event_site else None
                event_data['url'] = request.path
                event_data['username'] = request.META.get('REMOTE_USER')
                event_data['user_agent'] = _ua = request.META.get(
                    'HTTP_USER_AGENT')
                geo_data = getattr(GeoIPHelper.get_geoip_data(_ip), 'raw', {})
                event_data.update(geo_data)
                process_events_queue.delay(request_uuid, event_data)
        return response
Ejemplo n.º 3
0
    def process_request(self, request):

        lang = request.get_host().split('.')[0]
        languages = [lan[0] for lan in settings.LANGUAGES]
        site = get_current_site()
        site_cache = 'usersite_lang_{0}'.format(site.pk)

        if cache.get(site_cache):
            site_lang = cache.get(site_cache)
        else:
            s = Site.objects.get(domain=site.domain)
            try:
                assert s.user_site
                has_site = True
            except:
                has_site = False

            if has_site:
                site_lang = s.user_site.language
                if site_lang == 'auto':
                    site_lang = getattr(request, 'LANGUAGE_CODE', None)
                else:
                    cache.set(site_cache, site_lang, 60 * 60 * 12)
            else:
                site_lang = getattr(request, 'LANGUAGE_CODE', None)

        if lang not in languages and site_lang and site_lang in languages:
            protocol = 'http' if not request.is_secure() else 'https'
            redirect_url = "%s://%s.%s%s" % (protocol, site_lang, site.domain,
                                             request.get_full_path())

            return HttpResponseRedirect(redirect_url)
Ejemplo n.º 4
0
def get_template_with_base_path(template_name):
    user_site = get_current_site().user_site
    if user_site.user_template is not None:
        folder_template = user_site.user_template.folder_name
    else:  # Deprecated
        folder_template = 'usersites'
    return "%s/%s" % (folder_template, template_name)
Ejemplo n.º 5
0
def check_banner_exist(block):
    site_pk = get_current_site().pk
    return Banner.objects.filter(
                site_id=site_pk,
                block__code=block,
                block__block_type='user_site'
            ).exists()
Ejemplo n.º 6
0
def questionnaire_for_company_products():
    """
    Return the Questionnarie's qs for current company products.
    """
    from b24online.utils import get_company_questionnaire_qs

    organization = get_current_site().user_site.organization
    return get_company_questionnaire_qs(organization)
Ejemplo n.º 7
0
    def filter_queryset(self, queryset):
        """
        Filter the Quest-e only for current Company.
        """
        from b24online.utils import get_company_questionnaire_qs

        organization = get_current_site().user_site.organization
        return get_company_questionnaire_qs(organization)
Ejemplo n.º 8
0
    def filter_queryset(self, queryset):
        queryset = super().filter_queryset(queryset)
        organization = get_current_site().user_site.organization

        if isinstance(organization, Company):
            return queryset.filter(company=organization)
        else:
            return queryset.none()
Ejemplo n.º 9
0
 def get_queryset(self):
     self.organization = get_current_site().user_site.organization
     chats = self.model.objects \
         .filter(organization=self.organization,
                 participants__id__exact=self.request.user.id,
                 status=MessageChat.OPENED) \
         .distinct() \
         .order_by('-updated_at')
     return chats
Ejemplo n.º 10
0
def get_banners_list():
    site_pk = get_current_site().pk
    return Banner.objects.filter(
                site_id=site_pk,
                block__block_type='user_site'
            ).values_list(
                'block__code',
                flat=True
            )
Ejemplo n.º 11
0
def site_banner_total(side, block):
    """
    Return the number of selected type banners.
    """
    site_pk = get_current_site().pk
    return Banner.objects\
        .filter(site_id=site_pk,
                block__code=block,
                block__block_type='user_site')\
        .count()
Ejemplo n.º 12
0
def site_context_adv():
    organization_id = get_current_site().user_site.organization.pk
    cache_name = "adv:context:%s:%s" % (get_language(), organization_id)
    cached = cache.get(cache_name)

    if not cached:
        models = func.get_tops({Chamber: [organization_id]})

        if models is not None:
            cache.set(cache_name, models, 60 * 10)
    else:
        models = cache.get(cache_name)

    return {'MEDIA_URL': settings.MEDIA_URL, 'models': models}
Ejemplo n.º 13
0
def site_languages_processor(request):
    try:
        site_languages = get_current_site().user_site.languages
    except:
        site_languages = None

    if site_languages:
        obj = []
        for code, lang in settings.LANGUAGES:
            if code in site_languages:
                obj.append((code, lang))
    else:
        obj = settings.LANGUAGES

    return {'site_languages': obj}
Ejemplo n.º 14
0
def site_banner(side, block):
    site_pk = get_current_site().pk
    cache_name = "banner:usersite:%s:%s" % (block, site_pk)
    cached = cache.get(cache_name)

    if not cached:
        banner = Banner.objects.filter(site_id=site_pk, block__code=block, block__block_type='user_site').order_by('?') \
            .first()

        if banner:
            cache.set(cache_name, banner, 60 * 60)
    else:
        banner = cache.get(cache_name)

    return {'banner': banner, 'side': side}
Ejemplo n.º 15
0
def add_deal_for_product(sender, instance, created, **kwargs):
    """
    Add Deal for the product from Basket after PayPal success payment.
    """
    from tpp.DynamicSiteMiddleware import get_current_site
    from centerpokupok.models import B2CProduct
    from b24online.models import (DealOrder, Deal, DealItem)

    if created and instance and instance.item_number:
        try:
            item_id = int(instance.item_number)
            item = B2CProduct.objects.get(id=item_id)
        except (TypeError, B2CProduct.DoesNotExist):
            pass
        else:
            supplier = get_current_site().user_site.organization
            last_name = instance.last_name
            first_name = instance.first_name
            payer_email = instance.payer_email
            try:
                with transaction.atomic():
                    # Deal order
                    deal_order = DealOrder.objects.create(
                        customer_type=DealOrder.AS_PERSON,
                        status=DealOrder.READY,
                        deal_place=DealOrder.ON_USERSITE)
                    deal_order.save()

                    deal = Deal.objects.create(
                        deal_order=deal_order,
                        currency=item.currency,
                        supplier_company=supplier,
                        person_last_name=last_name,
                        person_first_name=first_name,
                        person_email=payer_email,
                        status=Deal.PAID_BY_PAYPAL,
                    )
                    model_type = ContentType.objects.get_for_model(item)
                    deal_item = DealItem.objects.create(
                        deal=deal,
                        content_type=model_type,
                        object_id=item.pk,
                        quantity=1,
                        currency=item.currency,
                        cost=item.cost)
            except IntegrityError:
                raise
Ejemplo n.º 16
0
def site_slider():
    import glob
    user_site = get_current_site().user_site
    custom_images = user_site.slider_images

    if custom_images:
        images = [obj.image.original for obj in custom_images.only('image')]
    else:
        static_url = "%susersites/templates" % settings.STATIC_URL
        dir = user_site.template.folder_name
        images = [
            "%s/%s/%s" %
            (static_url, os.path.basename(dir), os.path.basename(image))
            for image in glob.glob(dir + "/*.jpg")
        ]

    return {'images': images}
Ejemplo n.º 17
0
    def __init__(self, request):

        self.basket_id = request.session.get('uuid_hash', False)

        if self.basket_id:
            try:
                basket = UserBasket.objects.get(user_uuid=self.basket_id,
                                                site_id=get_current_site().id,
                                                checked_out=False)
            except UserBasket.DoesNotExist:
                basket = self.new(request)
        else:
            basket = self.new(request)
        self.basket = basket

        if request.session.get('company_paypal',
                               False) and request.session.get(
                                   'basket_currency', False):

            if not self.basket.currency and not self.basket.paypal:
                self.basket.currency = request.session.get('basket_currency')
                self.basket.paypal = request.session.get('company_paypal')
                self.basket.save()
Ejemplo n.º 18
0
    def show_stats(self, request):
        site = get_current_site()
        b2c_content_type = ContentType.objects.get_for_model(B2CProduct)
        b2b_content_type = ContentType.objects.get_for_model(B2BProduct)

        validate_by_form = False
        if 'start_date' in request.GET and 'end_date' in request.GET:
            form = self.form_class(data=request.GET)
            if form.is_valid():
                validate_by_form = True
        else:
            form = self.form_class()

        data_grid = []
        event_types = RegisteredEventType.objects.order_by('id')
        for event_type in event_types:
            qs = RegisteredEventStats.objects.filter(
                Q(event_type_id=event_type.pk) \
                & (Q(content_type_id=b2c_content_type) \
                   | Q(content_type_id=b2b_content_type))) \
                .values('content_type_id', 'object_id') \
                .annotate(unique=Sum('unique_amount'),
                          total=Sum('total_amount')) \
                .order_by('-unique')
            if validate_by_form:
                qs = form.filter(qs)
            qs = qs[:20]
            data_grid.append((event_type, qs))
        context = {
            'event_types': event_types,
            'data_grid': data_grid,
            'form': form,
            'opts': RegisteredEventStats._meta,
        }

        return render(request, 'admin/show_stats.html', context)
Ejemplo n.º 19
0
 def show_stats_detail(self, request, event_type_id, content_type_id,
                       instance_id, cnt_type):
     site = get_current_site()
     if 'date' in request.GET:
         registered_at = convert_date(request.GET['date'])
         try:
             stats = RegisteredEventStats.objects.get(
                 event_type_id=event_type_id,
                 # site_id=site.pk,
                 content_type_id=content_type_id,
                 object_id=instance_id,
                 registered_at=registered_at)
         except RegisteredEventStats.DoesNotExist:
             return HttpResponseRedirect(
                 reverse('admin:b24online_registeredeventstats_changelist'))
         else:
             data_grid = stats.get_extra_info(cnt_type)
             context = {
                 'data_grid': data_grid,
                 'item': stats,
                 'has_permission': True,
                 'opts': RegisteredEventStats._meta,
             }
             return render(request, 'admin/show_stats_detail.html', context)
Ejemplo n.º 20
0
def site_processor(request):
    return {'site': get_current_site()}
Ejemplo n.º 21
0
 def get_queryset(self):
     return get_current_site().user_site.organization.additional_pages.all()
Ejemplo n.º 22
0
def get_card_url(request):
    lang = request.LANGUAGE_CODE
    protocol = 'http' if not request.is_secure() else 'https'
    site = get_current_site()
    return "{0}://{1}.{2}/".format(protocol, lang, site.domain)
Ejemplo n.º 23
0
 def __init__(self):
     self.domain = get_current_site()
     try:
         self.r = settings.REDIS_USERSITE
     except ImproperlyConfigured as e:
         raise (e)
Ejemplo n.º 24
0
 def get_queryset(self):
     return get_current_site().user_site.organization.departments.all() \
         .prefetch_related('vacancies', 'vacancies__user', 'vacancies__user__profile')
Ejemplo n.º 25
0
 def get_queryset(self):
     return get_current_site().user_site.organization.gallery_images
Ejemplo n.º 26
0
def get_currentsite():
    """
    Return the current site.
    """
    return get_current_site()
Ejemplo n.º 27
0
 def filter_queryset(self, queryset):
     organization = get_current_site().user_site.organization
     return queryset.filter(products__company_id=organization.pk) \
         .order_by('level').distinct()
Ejemplo n.º 28
0
 def get_object(self, queryset=None):
     return get_current_site().user_site.organization
Ejemplo n.º 29
0
def is_chamber_site():
    organization = get_current_site().user_site.organization
    return isinstance(organization, Chamber)
Ejemplo n.º 30
0
 def get_queryset(self):
     return get_current_site().user_site.organization.departments.all()