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) )
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
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)
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)
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()
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)
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)
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()
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
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 )
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()
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}
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}
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}
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
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}
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()
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)
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)
def site_processor(request): return {'site': get_current_site()}
def get_queryset(self): return get_current_site().user_site.organization.additional_pages.all()
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)
def __init__(self): self.domain = get_current_site() try: self.r = settings.REDIS_USERSITE except ImproperlyConfigured as e: raise (e)
def get_queryset(self): return get_current_site().user_site.organization.departments.all() \ .prefetch_related('vacancies', 'vacancies__user', 'vacancies__user__profile')
def get_queryset(self): return get_current_site().user_site.organization.gallery_images
def get_currentsite(): """ Return the current site. """ return get_current_site()
def filter_queryset(self, queryset): organization = get_current_site().user_site.organization return queryset.filter(products__company_id=organization.pk) \ .order_by('level').distinct()
def get_object(self, queryset=None): return get_current_site().user_site.organization
def is_chamber_site(): organization = get_current_site().user_site.organization return isinstance(organization, Chamber)
def get_queryset(self): return get_current_site().user_site.organization.departments.all()