예제 #1
0
파일: tags.py 프로젝트: pierfra-r/astrobin
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
예제 #2
0
파일: tags.py 프로젝트: pierfra-r/astrobin
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))
예제 #3
0
파일: app.py 프로젝트: pierfra-r/astrobin
 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,
     })
예제 #4
0
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
예제 #5
0
파일: app.py 프로젝트: MattBlack85/astrobin
 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)
     })
예제 #6
0
파일: tags.py 프로젝트: pierfra-r/astrobin
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
예제 #7
0
    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
예제 #8
0
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
예제 #9
0
파일: tags.py 프로젝트: pierfra-r/astrobin
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()
예제 #10
0
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
예제 #11
0
    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))
예제 #12
0
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
예제 #13
0
    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))