def show_secondary_ad_on_page(context): request = context['request'] if not show_ads(request.user): return False country = utils.get_client_country_code(request) if country.lower() not in ('us', 'ca'): return False if context.template_name == 'image/detail.html': for data in context.dicts: if 'image' in data: return (not request.user.is_authenticated or is_free(request.user)) and \ not is_any_ultimate(data['image'].user) elif context.template_name in ( 'user/profile.html', 'user_collections_list.html', 'user_collections_detail.html', 'user/bookmarks.html', 'user/liked.html', 'user/following.html', 'user/followers.html', 'user/plots.html', ): for data in context.dicts: if 'requested_user' in data: return (not request.user.is_authenticated or is_free(request.user)) and \ not is_any_ultimate(data['requested_user']) return False
def show_skyscraper_ads_on_page(context): request = context['request'] if not show_ads(request.user): return False country = utils.get_client_country_code(request) if country.lower() not in ('us', 'ca'): return False is_anon = not context['request'].user.is_authenticated image_owner_is_ultimate = False if context.template_name.startswith('registration/'): return False elif context.template_name == 'image/detail.html': for data in context.dicts: if 'image' in data: image_owner_is_ultimate = is_any_ultimate(data['image'].user) elif context.template_name in ( 'user/profile.html', 'user_collections_list.html', 'user_collections_detail.html', 'user/bookmarks.html', 'user/liked.html', 'user/following.html', 'user/followers.html', 'user/plots.html', ): for data in context.dicts: if 'requested_user' in data: image_owner_is_ultimate = is_any_ultimate(data['requested_user']) return (is_anon or is_free(request.user)) and not image_owner_is_ultimate and \ (context["COOKIELAW_ACCEPTED"] is not False or not show_cookie_banner(context.request))
def get(self, request, *args, **kwargs): return self.render_json_response({ 'i18nHash': self.__get_i18n_hash__(), 'readOnly': self.__get_read_only_mode__(), 'PREMIUM_MAX_IMAGES_FREE': settings.PREMIUM_MAX_IMAGES_FREE, 'PREMIUM_MAX_IMAGES_LITE': settings.PREMIUM_MAX_IMAGES_LITE, 'PREMIUM_MAX_IMAGES_FREE_2020': settings.PREMIUM_MAX_IMAGES_FREE_2020, 'PREMIUM_MAX_IMAGES_LITE_2020': settings.PREMIUM_MAX_IMAGES_LITE_2020, 'PREMIUM_MAX_IMAGES_PREMIUM_2020': settings.PREMIUM_MAX_IMAGES_PREMIUM_2020, 'PREMIUM_MAX_IMAGE_SIZE_FREE_2020': settings.PREMIUM_MAX_IMAGE_SIZE_FREE_2020, 'PREMIUM_MAX_IMAGE_SIZE_LITE_2020': settings.PREMIUM_MAX_IMAGE_SIZE_LITE_2020, 'PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020': settings.PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020, 'PREMIUM_MAX_REVISIONS_FREE_2020': settings.PREMIUM_MAX_REVISIONS_FREE_2020, 'PREMIUM_MAX_REVISIONS_LITE_2020': settings.PREMIUM_MAX_REVISIONS_LITE_2020, 'PREMIUM_MAX_REVISIONS_PREMIUM_2020': settings.PREMIUM_MAX_REVISIONS_PREMIUM_2020, 'PREMIUM_PRICE_FREE_2020': settings.PREMIUM_PRICE_FREE_2020, 'PREMIUM_PRICE_LITE_2020': settings.PREMIUM_PRICE_LITE_2020, 'PREMIUM_PRICE_PREMIUM_2020': settings.PREMIUM_PRICE_PREMIUM_2020, 'PREMIUM_PRICE_ULTIMATE_2020': settings.PREMIUM_PRICE_ULTIMATE_2020, 'MAX_IMAGE_PIXELS': PILImage.MAX_IMAGE_PIXELS, 'GOOGLE_ADS_ID': settings.GOOGLE_ADS_ID, 'REQUEST_COUNTRY': utils.get_client_country_code(request), 'IMAGE_CONTENT_TYPE_ID': ContentType.objects.get_for_model(Image).id, 'THUMBNAIL_ALIASES': settings.THUMBNAIL_ALIASES[''], 'IOTD_SUBMISSION_MAX_PER_DAY': settings.IOTD_SUBMISSION_MAX_PER_DAY, 'IOTD_REVIEW_MAX_PER_DAY': settings.IOTD_REVIEW_MAX_PER_DAY, 'IOTD_QUEUES_PAGE_SIZE': settings.IOTD_QUEUES_PAGE_SIZE, 'IMAGE_UPLOAD_ENDPOINT': '/api/v2/images/image-upload/', 'IMAGE_REVISION_UPLOAD_ENDPOINT': '/api/v2/images/image-revision-upload/', 'DATA_UPLOAD_MAX_MEMORY_SIZE': settings.DATA_UPLOAD_MAX_MEMORY_SIZE, })
def common_variables(request): from rawdata.utils import rawdata_user_has_valid_subscription from django_user_agents.utils import get_and_set_user_agent from django_bouncy.models import Bounce get_and_set_user_agent(request) bounced = False if request.user.is_authenticated(): bounced = Bounce.objects.filter( address = request.user.email, bounce_type="Permanent").exists() d = { 'True': True, 'False': False, 'LANGUAGE_CODE': request.LANGUAGE_CODE if hasattr(request, "LANGUAGE_CODE") else "en", 'DEBUG_MODE': settings.DEBUG, 'REQUEST_COUNTRY': get_client_country_code(request), #'random_gear_item': Gear.objects.filter(moderator_fixed = None).order_by('?')[:1].get(), 'is_producer': request.user.groups.filter(name='Producers'), 'is_retailer': request.user.groups.filter(name='Retailers'), 'rawdata_has_subscription': rawdata_user_has_valid_subscription(request.user), 'IMAGES_URL' : settings.IMAGES_URL, 'MEDIA_URL' : settings.MEDIA_URL, 'ADS_ENABLED': settings.ADS_ENABLED, 'DONATIONS_ENABLED': settings.DONATIONS_ENABLED, 'PREMIUM_ENABLED': settings.PREMIUM_ENABLED, 'PREMIUM_MAX_IMAGES_FREE': settings.PREMIUM_MAX_IMAGES_FREE, 'PREMIUM_MAX_IMAGES_LITE': settings.PREMIUM_MAX_IMAGES_LITE, 'PAYPAL_TEST': settings.PAYPAL_TEST, 'IOTD_SHOW_CHOOSING_JUDGE': settings.IOTD_SHOW_CHOOSING_JUDGE, 'SOLVING_ENABLED': settings.ENABLE_SOLVING, 'GOOGLE_ANALYTICS_ID': settings.GOOGLE_ANALYTICS_ID, 'READONLY_MODE': settings.READONLY_MODE, 'HAS_BOUNCED_EMAILS': bounced, 'COUNTRIES': COUNTRIES, 'COOKIELAW_ACCEPTED': request.COOKIES.get('cookielaw_accepted', False), } if request.user.is_authenticated() and request.user.userprofile.is_image_moderator(): d['images_pending_moderation_no'] = Image.objects_including_wip.filter(moderator_decision = 0).count() return d
def get(self, request, *args, **kwargs): return self.render_json_response({ u"i18nHash": self.__get_i18n_hash__(), u"readOnly": self.__get_read_only_mode__(), u"PREMIUM_MAX_IMAGES_FREE": settings.PREMIUM_MAX_IMAGES_FREE, u"PREMIUM_MAX_IMAGES_LITE": settings.PREMIUM_MAX_IMAGES_LITE, u"PREMIUM_MAX_IMAGES_FREE_2020": settings.PREMIUM_MAX_IMAGES_FREE_2020, u"PREMIUM_MAX_IMAGES_LITE_2020": settings.PREMIUM_MAX_IMAGES_LITE_2020, u"PREMIUM_MAX_IMAGES_PREMIUM_2020": settings.PREMIUM_MAX_IMAGES_PREMIUM_2020, u"PREMIUM_MAX_IMAGE_SIZE_FREE_2020": settings.PREMIUM_MAX_IMAGE_SIZE_FREE_2020, u"PREMIUM_MAX_IMAGE_SIZE_LITE_2020": settings.PREMIUM_MAX_IMAGE_SIZE_LITE_2020, u"PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020": settings.PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020, u"PREMIUM_MAX_REVISIONS_FREE_2020": settings.PREMIUM_MAX_REVISIONS_FREE_2020, u"PREMIUM_MAX_REVISIONS_LITE_2020": settings.PREMIUM_MAX_REVISIONS_LITE_2020, u"PREMIUM_MAX_REVISIONS_PREMIUM_2020": settings.PREMIUM_MAX_REVISIONS_PREMIUM_2020, u"PREMIUM_PRICE_FREE_2020": settings.PREMIUM_PRICE_FREE_2020, u"PREMIUM_PRICE_LITE_2020": settings.PREMIUM_PRICE_LITE_2020, u"PREMIUM_PRICE_PREMIUM_2020": settings.PREMIUM_PRICE_PREMIUM_2020, u"PREMIUM_PRICE_ULTIMATE_2020": settings.PREMIUM_PRICE_ULTIMATE_2020, u"MAX_IMAGE_PIXELS": Image.MAX_IMAGE_PIXELS, u"GOOGLE_ADS_ID": settings.GOOGLE_ADS_ID, u"REQUEST_COUNTRY": utils.get_client_country_code(request) })
def search_image_list(context, paginate=True, **kwargs): request = context['request'] q = request.GET.get('q') telescope = request.GET.get('telescope') camera = request.GET.get('camera') country = get_client_country_code(request) equipment_brand_listings = None if telescope or camera or q: equipment_brand_listings = EquipmentBrandListing.objects \ .annotate(distance=TrigramDistance('brand__name', telescope or camera or q)) \ .filter(distance__lte=.85, retailer__countries__icontains=country) context.update({ 'paginate': paginate, 'search_domain': context['request'].GET.get('d'), 'sort': context['request'].GET.get('sort'), 'equipment_brand_listings': equipment_brand_listings }) return context
def process_response(self, request, response): if self._process(request): try: profile = UserProfile.objects.get(user=request.user) profile.last_seen = datetime.now() country_code = get_client_country_code(request) if country_code and country_code != 'UNKNOWN': try: profile.last_seen_in_country = country_code.lower()[0:2] except IndexError: pass profile.save(keep_deleted=True) max_age = 60 * 60 expires = datetime.strftime(datetime.utcnow() + timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT") response.set_cookie(LAST_SEEN_COOKIE, 1, max_age=max_age, expires=expires) except UserProfile.DoesNotExist: pass return response
def common_variables(request): from django_user_agents.utils import get_and_set_user_agent from django_bouncy.models import Bounce, Complaint get_and_set_user_agent(request) hard_bounces = None soft_bounces = None complained = False if request.user.is_authenticated: cache_key = 'hard_bounces_%d' % request.user.pk hard_bounces = cache.get(cache_key) if hard_bounces is None: hard_bounces = Bounce.objects.filter(hard=True, address=request.user.email, bounce_type="Permanent") cache.set(cache_key, hard_bounces, 3600) cache_key = 'soft_bounces_%d' % request.user.pk soft_bounces = cache.get(cache_key) if soft_bounces is None: soft_bounces = Bounce.objects.filter( hard=False, address=request.user.email, bounce_type="Transient", created_at__gte=datetime.now() - timedelta(days=7))[:3] cache.set(cache_key, soft_bounces, 3600) cache_key = 'complained_%d' % request.user.pk complained = cache.get(cache_key) if complained is None: complained = Complaint.objects.filter( address=request.user.email).exists() cache.set(cache_key, complained, 3600) def has_unmigrated_legacy_gear_items(user: User) -> bool: if user.groups.filter(name='own_equipment_migrators').exists(): for klass in ('telescopes', 'cameras', 'mounts', 'filters', 'focal_reducers', 'accessories', 'software'): if getattr(user.userprofile, klass)\ .annotate(count=Count('migration_strategies'))\ .filter(count=0)\ .exists(): return True return False d = { 'True': True, 'False': False, 'STATIC_URL': settings.STATIC_URL, 'LANGUAGE_CODE': request.LANGUAGE_CODE if hasattr(request, "LANGUAGE_CODE") else "en", 'DEBUG_MODE': settings.DEBUG, 'TESTING': settings.TESTING, 'REQUEST_COUNTRY': get_client_country_code(request), 'IMAGES_URL': settings.IMAGES_URL, 'MEDIA_URL': settings.MEDIA_URL, 'ADS_ENABLED': settings.ADS_ENABLED, 'ADMANAGER_PUBLISHER_ID': settings.ADMANAGER_PUBLISHER_ID, 'NATIVE_RESPONSIVE_WIDE_SLOT': settings.NATIVE_RESPONSIVE_WIDE_SLOT, 'NATIVE_RESPONSIVE_RECTANGULAR_SLOT': settings.NATIVE_RESPONSIVE_RECTANGULAR_SLOT, 'NATIVE_RESPONSIVE_RECTANGULAR_SLOT_2': settings.NATIVE_RESPONSIVE_RECTANGULAR_SLOT_2, 'NATIVE_RESPONSIVE_SKYSCRAPER_SLOT_1': settings.NATIVE_RESPONSIVE_SKYSCRAPER_SLOT_1, 'NATIVE_RESPONSIVE_SKYSCRAPER_SLOT_2': settings.NATIVE_RESPONSIVE_SKYSCRAPER_SLOT_2, 'DONATIONS_ENABLED': settings.DONATIONS_ENABLED, 'PREMIUM_ENABLED': settings.PREMIUM_ENABLED, 'PREMIUM_MAX_IMAGES_FREE': settings.PREMIUM_MAX_IMAGES_FREE, 'PREMIUM_MAX_IMAGES_LITE': settings.PREMIUM_MAX_IMAGES_LITE, 'PREMIUM_MAX_IMAGES_FREE_2020': settings.PREMIUM_MAX_IMAGES_FREE_2020, 'PREMIUM_MAX_IMAGES_LITE_2020': settings.PREMIUM_MAX_IMAGES_LITE_2020, 'PREMIUM_MAX_IMAGES_PREMIUM_2020': settings.PREMIUM_MAX_IMAGES_PREMIUM_2020, 'PREMIUM_MAX_IMAGE_SIZE_FREE_2020': settings.PREMIUM_MAX_IMAGE_SIZE_FREE_2020, 'PREMIUM_MAX_IMAGE_SIZE_LITE_2020': settings.PREMIUM_MAX_IMAGE_SIZE_LITE_2020, 'PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020': settings.PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020, 'PREMIUM_MAX_REVISIONS_FREE_2020': settings.PREMIUM_MAX_REVISIONS_FREE_2020, 'PREMIUM_MAX_REVISIONS_LITE_2020': settings.PREMIUM_MAX_REVISIONS_LITE_2020, 'PREMIUM_MAX_REVISIONS_PREMIUM_2020': settings.PREMIUM_MAX_REVISIONS_PREMIUM_2020, 'PREMIUM_PRICE_FREE_2020': settings.PREMIUM_PRICE_FREE_2020, 'PREMIUM_PRICE_LITE_2020': settings.PREMIUM_PRICE_LITE_2020, 'PREMIUM_PRICE_PREMIUM_2020': settings.PREMIUM_PRICE_PREMIUM_2020, 'PREMIUM_PRICE_ULTIMATE_2020': settings.PREMIUM_PRICE_ULTIMATE_2020, 'PAYPAL_TEST': settings.PAYPAL_TEST, 'IOTD_SHOW_CHOOSING_JUDGE': settings.IOTD_SHOW_CHOOSING_JUDGE, 'IOTD_SUBMISSION_WINDOW_DAYS': settings.IOTD_SUBMISSION_WINDOW_DAYS, 'ENABLE_SOLVING': settings.ENABLE_SOLVING, 'GOOGLE_ANALYTICS_ID': settings.GOOGLE_ANALYTICS_ID, 'GOOGLE_ADS_ID': settings.GOOGLE_ADS_ID, 'READONLY_MODE': settings.READONLY_MODE, 'HARD_BOUNCES': hard_bounces, 'SOFT_BOUNCES': soft_bounces, 'HAS_COMPLAINT': complained, 'COUNTRIES': COUNTRIES, 'COOKIELAW_ACCEPTED': request.COOKIES.get('cookielaw_accepted', False), 'HAS_CAMERA_RENAME_PROPOSALS': CameraRenameProposal.objects.filter(user=request.user, status="PENDING") \ if request.user.is_authenticated \ else CameraRenameProposal.objects.none(), 'HAS_UNMIGRATED_LEGACY_GEAR_ITEMS': has_unmigrated_legacy_gear_items(request.user), 'enums': { 'SubjectType': SubjectType, }, 'abuse_report_form': AbuseReportForm() } if request.user.is_authenticated and request.user.userprofile.is_image_moderator( ): d['images_pending_moderation_no'] = ImageService( ).get_images_pending_moderation().count() return d
def show_cookie_banner(request): country = utils.get_client_country_code(request) return country is None or country.lower() in utils.get_european_union_country_codes()
def common_variables(request): from django_user_agents.utils import get_and_set_user_agent from django_bouncy.models import Bounce, Complaint get_and_set_user_agent(request) hard_bounces = None soft_bounces = None complained = False if request.user.is_authenticated(): cache_key = 'hard_bounces_%d' % request.user.pk hard_bounces = cache.get(cache_key) if hard_bounces is None: hard_bounces = Bounce.objects.filter( hard=True, address=request.user.email, bounce_type="Permanent") cache.set(cache_key, hard_bounces, 3600) cache_key = 'soft_bounces_%d' % request.user.pk soft_bounces = cache.get(cache_key) if soft_bounces is None: soft_bounces = Bounce.objects.filter( hard=False, address=request.user.email, bounce_type="Transient", created_at__gte=datetime.now() - timedelta(days=7))[:3] cache.set(cache_key, soft_bounces, 3600) cache_key = 'complained_%d' % request.user.pk complained = cache.get(cache_key) if complained is None: complained = Complaint.objects.filter(address=request.user.email).exists() cache.set(cache_key, complained, 3600) d = { 'True': True, 'False': False, 'STATIC_URL': settings.STATIC_URL, 'LANGUAGE_CODE': request.LANGUAGE_CODE if hasattr(request, "LANGUAGE_CODE") else "en", 'DEBUG_MODE': settings.DEBUG, 'REQUEST_COUNTRY': get_client_country_code(request), 'IMAGES_URL': settings.IMAGES_URL, 'MEDIA_URL': settings.MEDIA_URL, 'ADS_ENABLED': settings.ADS_ENABLED, 'ADSENSE_ENABLED': settings.ADSENSE_ENABLED, 'ADMANAGER_PUBLISHER_ID': settings.ADMANAGER_PUBLISHER_ID, 'NATIVE_RESPONSIVE_WIDE_SLOT': settings.NATIVE_RESPONSIVE_WIDE_SLOT, 'NATIVE_RESPONSIVE_RECTANGULAR_SLOT': settings.NATIVE_RESPONSIVE_RECTANGULAR_SLOT, 'NATIVE_RESPONSIVE_RECTANGULAR_SLOT_2': settings.NATIVE_RESPONSIVE_RECTANGULAR_SLOT_2, 'DONATIONS_ENABLED': settings.DONATIONS_ENABLED, 'PREMIUM_ENABLED': settings.PREMIUM_ENABLED, 'PREMIUM_MAX_IMAGES_FREE': settings.PREMIUM_MAX_IMAGES_FREE, 'PREMIUM_MAX_IMAGES_LITE': settings.PREMIUM_MAX_IMAGES_LITE, 'PREMIUM_MAX_IMAGES_FREE_2020': settings.PREMIUM_MAX_IMAGES_FREE_2020, 'PREMIUM_MAX_IMAGES_LITE_2020': settings.PREMIUM_MAX_IMAGES_LITE_2020, 'PREMIUM_MAX_IMAGES_PREMIUM_2020': settings.PREMIUM_MAX_IMAGES_PREMIUM_2020, 'PREMIUM_MAX_IMAGE_SIZE_FREE_2020': settings.PREMIUM_MAX_IMAGE_SIZE_FREE_2020, 'PREMIUM_MAX_IMAGE_SIZE_LITE_2020': settings.PREMIUM_MAX_IMAGE_SIZE_LITE_2020, 'PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020': settings.PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020, 'PREMIUM_MAX_REVISIONS_FREE_2020': settings.PREMIUM_MAX_REVISIONS_FREE_2020, 'PREMIUM_MAX_REVISIONS_LITE_2020': settings.PREMIUM_MAX_REVISIONS_LITE_2020, 'PREMIUM_MAX_REVISIONS_PREMIUM_2020': settings.PREMIUM_MAX_REVISIONS_PREMIUM_2020, 'PREMIUM_PRICE_FREE_2020': settings.PREMIUM_PRICE_FREE_2020, 'PREMIUM_PRICE_LITE_2020': settings.PREMIUM_PRICE_LITE_2020, 'PREMIUM_PRICE_PREMIUM_2020': settings.PREMIUM_PRICE_PREMIUM_2020, 'PREMIUM_PRICE_ULTIMATE_2020': settings.PREMIUM_PRICE_ULTIMATE_2020, 'PAYPAL_TEST': settings.PAYPAL_TEST, 'IOTD_SHOW_CHOOSING_JUDGE': settings.IOTD_SHOW_CHOOSING_JUDGE, 'ENABLE_SOLVING': settings.ENABLE_SOLVING, 'GOOGLE_ANALYTICS_ID': settings.GOOGLE_ANALYTICS_ID, 'GOOGLE_ADS_ID': settings.GOOGLE_ADS_ID, 'READONLY_MODE': settings.READONLY_MODE, 'HARD_BOUNCES': hard_bounces, 'SOFT_BOUNCES': soft_bounces, 'HAS_COMPLAINT': complained, 'COUNTRIES': COUNTRIES, 'COOKIELAW_ACCEPTED': request.COOKIES.get('cookielaw_accepted', False), 'AUTOMATIC_RECOVERY_CONFIRMATION_BEGINS': Image.all_objects.filter( user=request.user, corrupted=True, recovered__isnull=False).order_by('recovered').first().recovered + timedelta(days=14) \ if request.user.is_authenticated() and \ Image.all_objects.filter( user=request.user, corrupted=True, recovered__isnull=False).exists() \ else None, 'min_index_to_like': settings.MIN_INDEX_TO_LIKE, 'enums': { 'SubjectType': SubjectType, }, } if request.user.is_authenticated() and request.user.userprofile.is_image_moderator(): d['images_pending_moderation_no'] = ImageService().get_images_pending_moderation().count() return d
def test_get_client_country_code(self, mock_country, mock_get_client_ip): mock_country.return_value = "CH" mock_get_client_ip.return_value = "123.123.123.123" self.assertEquals("CH", utils.get_client_country_code(None))
def common_variables(request): from django_user_agents.utils import get_and_set_user_agent from django_bouncy.models import Bounce, Complaint get_and_set_user_agent(request) bounced = False complained = False if request.user.is_authenticated(): bounced = Bounce.objects.filter(address=request.user.email, bounce_type="Permanent").exists() complained = Complaint.objects.filter( address=request.user.email).exists() d = { 'True': True, 'False': False, 'LANGUAGE_CODE': request.LANGUAGE_CODE if hasattr(request, "LANGUAGE_CODE") else "en", 'DEBUG_MODE': settings.DEBUG, 'REQUEST_COUNTRY': get_client_country_code(request), # 'random_gear_item': Gear.objects.filter(moderator_fixed = None).order_by('?')[:1].get(), 'is_producer': request.user.groups.filter(name='Producers'), 'is_retailer': request.user.groups.filter(name='Retailers'), 'IMAGES_URL': settings.IMAGES_URL, 'MEDIA_URL': settings.MEDIA_URL, 'ADS_ENABLED': settings.ADS_ENABLED, 'DONATIONS_ENABLED': settings.DONATIONS_ENABLED, 'PREMIUM_ENABLED': settings.PREMIUM_ENABLED, 'PREMIUM_MAX_IMAGES_FREE': settings.PREMIUM_MAX_IMAGES_FREE, 'PREMIUM_MAX_IMAGES_LITE': settings.PREMIUM_MAX_IMAGES_LITE, 'PREMIUM_MAX_IMAGES_FREE_2020': settings.PREMIUM_MAX_IMAGES_FREE_2020, 'PREMIUM_MAX_IMAGES_LITE_2020': settings.PREMIUM_MAX_IMAGES_LITE_2020, 'PREMIUM_MAX_IMAGES_PREMIUM_2020': settings.PREMIUM_MAX_IMAGES_PREMIUM_2020, 'PREMIUM_MAX_IMAGE_SIZE_FREE_2020': settings.PREMIUM_MAX_IMAGE_SIZE_FREE_2020, 'PREMIUM_MAX_IMAGE_SIZE_LITE_2020': settings.PREMIUM_MAX_IMAGE_SIZE_LITE_2020, 'PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020': settings.PREMIUM_MAX_IMAGE_SIZE_PREMIUM_2020, 'PREMIUM_MAX_REVISIONS_FREE_2020': settings.PREMIUM_MAX_REVISIONS_FREE_2020, 'PREMIUM_MAX_REVISIONS_LITE_2020': settings.PREMIUM_MAX_REVISIONS_LITE_2020, 'PREMIUM_MAX_REVISIONS_PREMIUM_2020': settings.PREMIUM_MAX_REVISIONS_PREMIUM_2020, 'PREMIUM_PRICE_FREE_2020': settings.PREMIUM_PRICE_FREE_2020, 'PREMIUM_PRICE_LITE_2020': settings.PREMIUM_PRICE_LITE_2020, 'PREMIUM_PRICE_PREMIUM_2020': settings.PREMIUM_PRICE_PREMIUM_2020, 'PREMIUM_PRICE_ULTIMATE_2020': settings.PREMIUM_PRICE_ULTIMATE_2020, 'PAYPAL_TEST': settings.PAYPAL_TEST, 'IOTD_SHOW_CHOOSING_JUDGE': settings.IOTD_SHOW_CHOOSING_JUDGE, 'ENABLE_SOLVING': settings.ENABLE_SOLVING, 'GOOGLE_ANALYTICS_ID': settings.GOOGLE_ANALYTICS_ID, 'READONLY_MODE': settings.READONLY_MODE, 'HAS_BOUNCED_EMAILS': bounced, 'HAS_COMPLAINT': complained, 'COUNTRIES': COUNTRIES, 'COOKIELAW_ACCEPTED': request.COOKIES.get('cookielaw_accepted', False), 'enums': { 'SubjectType': SubjectType, }, } if request.user.is_authenticated( ) and request.user.userprofile.is_image_moderator(): d['images_pending_moderation_no'] = Image.objects_including_wip.filter( moderator_decision=0).count() return d
def test_get_client_country_code(self, mock_country, mock_get_client_ip): mock_country.return_value = "CH" mock_get_client_ip.return_value = "123.123.123.123" self.assertEquals("CH", get_client_country_code(None))