def browse_view(self):
        params = request.args.items()
        params = dict((k, v) for k, v in params if v)

        def test_and_remove(key):
            if request.args.get(key):
                if request.args.get(key).lower() == request.args.get("query").lower():
                    erase_from_dict(params, 'query')

        if not request.args.get("location"):
            try:
                reader = geoip2.database.Reader(os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb')
                ip = get_real_ip()
                if ip == '127.0.0.1' or ip == '0.0.0.0':
                    ip = urlopen('http://ip.42.pl/raw').read()  # On local test environments
                response = reader.country(ip)
                country = response.country.name
            except:
                country = "United States"
        else:
            country = request.args.get("location")

        test_and_remove("location")
        test_and_remove("category")
        erase_from_dict(params, 'location')

        return redirect(url_for('explore.explore_view', location=slugify(country)) + '?' +
                        urllib.urlencode(params))
Ejemplo n.º 2
0
    def browse_view(self):
        params = request.args.items()
        params = dict((k, v) for k, v in params if v)
        print params
        def test_and_remove(key):
            if request.args.get(key):
                if request.args.get(key).lower() == request.args.get("query").lower():
                    erase_from_dict(params, 'query')

        if not request.args.get("location"):
            try:
                reader = geoip2.database.Reader(os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb')
                ip = get_real_ip()
                if ip == '127.0.0.1' or ip == '0.0.0.0':
                    ip = urlopen('http://ip.42.pl/raw').read()  # On local test environments
                response = reader.country(ip)
                country = response.country.name
            except:
                country = "United States"
        else:
            country = request.args.get("location")

        test_and_remove("location")
        test_and_remove("category")
        erase_from_dict(params, 'location')

        return redirect(url_for('explore.explore_view', location=slugify(country)) + '?' +
                        urllib.urlencode(params))
Ejemplo n.º 3
0
def location():
    ip = get_real_ip()
    if ip == '127.0.0.1' or ip == '0.0.0.0':
        ip = urlopen(
            'http://ip.42.pl/raw').read()  # On local test environments
    try:
        reader = geoip2.database.Reader(
            os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb')
        response = reader.country(ip)
        return jsonify({
            'status': 'ok',
            'name': response.country.name,
            'code': response.country.iso_code,
            'slug': slugify(response.country.name),
            'ip': ip
        })
    except:
        return jsonify({
            'status': 'ok',
            'silent_error': 'look_up_failed',
            'name': 'United States',
            'slug': slugify('United States'),
            'code': 'US',
            'ip': ip
        })
Ejemplo n.º 4
0
def get_request_stats():
    """
    Get IP, Browser, Platform, Version etc
    http://werkzeug.pocoo.org/docs/0.11/utils/#module-werkzeug.useragents

    Note: request.remote_addr gives the server's address if the server is behind a reverse proxy. -@niranjan94
    """
    return {
        'ip': get_real_ip(),
        'platform': request.user_agent.platform,
        'browser': request.user_agent.browser,
        'version': request.user_agent.version,
        'language': request.user_agent.language
    }
Ejemplo n.º 5
0
def get_request_stats():
    """
    Get IP, Browser, Platform, Version etc
    http://werkzeug.pocoo.org/docs/0.11/utils/#module-werkzeug.useragents

    Note: request.remote_addr gives the server's address if the server is behind a reverse proxy. -@niranjan94
    """
    return {
        'ip': get_real_ip(),
        'platform': request.user_agent.platform,
        'browser': request.user_agent.browser,
        'version': request.user_agent.version,
        'language': request.user_agent.language
    }
Ejemplo n.º 6
0
    def create_view(self, ):
        if request.method == 'POST':
            if not current_user.can_create_event():
                flash("You don't have permission to create event.")
                return redirect(url_for('.index_view'))
            img_files = []
            imd = ImmutableMultiDict(request.files)
            if 'sponsors[logo]' in imd and request.files[
                    'sponsors[logo]'].filename != "":
                for img_file in imd.getlist('sponsors[logo]'):
                    img_files.append(img_file)
            event = DataManager.create_event(request.form, img_files)
            if request.form.get('state',
                                u'Draft') == u'Published' and string_empty(
                                    event.location_name):
                flash(
                    "Your event was saved. To publish your event please review the highlighted fields below.",
                    "warning")
                return redirect(
                    url_for('.edit_view', event_id=event.id) +
                    "#step=location_name")
            if event:
                return redirect(url_for('.details_view', event_id=event.id))
            return redirect(url_for('.index_view'))

        hash = get_random_hash()
        if CallForPaper.query.filter_by(hash=hash).all():
            hash = get_random_hash()

        match = geolite2.lookup(get_real_ip(True) or '127.0.0.1')
        if match is not None:
            current_timezone = match.timezone
        else:
            current_timezone = 'UTC'

        return self.render(
            '/gentelella/admin/event/new/new.html',
            current_date=datetime.datetime.now(),
            start_date=datetime.datetime.now() + datetime.timedelta(days=10),
            event_types=DataGetter.get_event_types(),
            event_licences=DataGetter.get_event_licences(),
            event_topics=DataGetter.get_event_topics(),
            event_sub_topics=DataGetter.get_event_subtopics(),
            timezones=DataGetter.get_all_timezones(),
            cfs_hash=hash,
            current_timezone=current_timezone,
            payment_countries=DataGetter.get_payment_countries(),
            payment_currencies=DataGetter.get_payment_currencies(),
            included_settings=self.get_module_settings())
def display_debug_info():

    return render_template('gentelella/admin/super_admin/debug/debug.html',
                           ip=get_real_ip(),
                           cookies=request.cookies,
                           config=json.dumps(dict(current_app.config),
                                             sort_keys=True,
                                             indent=4,
                                             default=json_serial),
                           environment=json.dumps(dict(os.environ.data),
                                                  sort_keys=True,
                                                  indent=4,
                                                  default=json_serial),
                           navigation_bar=list_navbar(),
                           headers=request.headers)
def location():
    ip = get_real_ip(True)

    try:
        reader = geoip2.database.Reader(os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb')
        response = reader.country(ip)
        return jsonify({
            'status': 'ok',
            'name': response.country.name,
            'code': response.country.iso_code,
            'slug': slugify(response.country.name),
            'ip': ip
        })
    except:
        return jsonify({
            'status': 'ok',
            'silent_error': 'look_up_failed',
            'name': 'United States',
            'slug': slugify('United States'),
            'code': 'US',
            'ip': ip
        })
Ejemplo n.º 9
0
def location():
    ip = get_real_ip(True)

    try:
        reader = geoip2.database.Reader(
            os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb')
        response = reader.country(ip)
        return jsonify({
            'status': 'ok',
            'name': response.country.name,
            'code': response.country.iso_code,
            'slug': slugify(response.country.name),
            'ip': ip
        })
    except:
        return jsonify({
            'status': 'ok',
            'silent_error': 'look_up_failed',
            'name': 'United States',
            'slug': slugify('United States'),
            'code': 'US',
            'ip': ip
        })
def location():
    ip = get_real_ip()
    if ip == '127.0.0.1' or ip == '0.0.0.0':
        ip = urlopen('http://ip.42.pl/raw').read()  # On local test environments
    try:
        reader = geoip2.database.Reader(os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb')
        response = reader.country(ip)
        return jsonify({
            'status': 'ok',
            'name': response.country.name,
            'code': response.country.iso_code,
            'slug': slugify(response.country.name),
            'ip': ip
        })
    except:
        return jsonify({
            'status': 'ok',
            'silent_error': 'look_up_failed',
            'name': 'United States',
            'slug': slugify('United States'),
            'code': 'US',
            'ip': ip
        })
Ejemplo n.º 11
0
def get_current_timezone():
    match = geolite2.lookup(get_real_ip(True) or '127.0.0.1')
    if match is not None:
        return match.timezone
    else:
        return 'UTC'
Ejemplo n.º 12
0
    def edit_view_stepped(self, event_id, step):
        event = DataGetter.get_event(event_id)
        session_types = DataGetter.get_session_types_by_event_id(
            event_id).all()
        tracks = DataGetter.get_tracks(event_id).all()
        social_links = DataGetter.get_social_links_by_event_id(event_id)
        microlocations = DataGetter.get_microlocations(event_id).all()
        call_for_speakers = DataGetter.get_call_for_papers(event_id).first()
        sponsors = DataGetter.get_sponsors(event_id)
        custom_forms = DataGetter.get_custom_form_elements(event_id)
        speaker_form = json.loads(custom_forms.speaker_form)
        session_form = json.loads(custom_forms.session_form)
        tax = DataGetter.get_tax_options(event_id)
        ticket_types = DataGetter.get_ticket_types(event_id)

        preselect = []
        required = []
        for session_field in session_form:
            if session_form[session_field]['include'] == 1:
                preselect.append(session_field)
                if session_form[session_field]['require'] == 1:
                    required.append(session_field)
        for speaker_field in speaker_form:
            if speaker_form[speaker_field]['include'] == 1:
                preselect.append(speaker_field)
                if speaker_form[speaker_field]['require'] == 1:
                    required.append(speaker_field)

        if request.method == 'GET':

            hash = get_random_hash()
            if CallForPaper.query.filter_by(hash=hash).all():
                hash = get_random_hash()

            match = geolite2.lookup(get_real_ip(True) or '127.0.0.1')
            if match is not None:
                current_timezone = match.timezone
            else:
                current_timezone = 'UTC'

            return self.render(
                '/gentelella/admin/event/edit/edit.html',
                event=event,
                session_types=session_types,
                tracks=tracks,
                social_links=social_links,
                microlocations=microlocations,
                call_for_speakers=call_for_speakers,
                sponsors=sponsors,
                event_types=DataGetter.get_event_types(),
                event_licences=DataGetter.get_event_licences(),
                event_topics=DataGetter.get_event_topics(),
                event_sub_topics=DataGetter.get_event_subtopics(),
                preselect=preselect,
                current_timezone=current_timezone,
                timezones=DataGetter.get_all_timezones(),
                cfs_hash=hash,
                step=step,
                required=required,
                included_settings=self.get_module_settings(),
                tax=tax,
                payment_countries=DataGetter.get_payment_countries(),
                current_date=datetime.datetime.now(),
                start_date=datetime.datetime.now() +
                datetime.timedelta(days=10),
                payment_currencies=DataGetter.get_payment_currencies(),
                ticket_types=ticket_types)

        if request.method == "POST":
            img_files = []
            imd = ImmutableMultiDict(request.files)
            if 'sponsors[logo]' in imd and request.files[
                    'sponsors[logo]'].filename != "":
                for img_file in imd.getlist('sponsors[logo]'):
                    img_files.append(img_file)

            old_sponsor_logos = []
            old_sponsor_names = []
            for sponsor in sponsors:
                old_sponsor_logos.append(sponsor.logo)
                old_sponsor_names.append(sponsor.name)

            try:
                event = DataManager.edit_event(
                    request, event_id, event, session_types, tracks,
                    social_links, microlocations, call_for_speakers, sponsors,
                    custom_forms, img_files, old_sponsor_logos,
                    old_sponsor_names, tax)
            except Exception:
                traceback.print_exc()

            if (request.form.get('state', u'Draft')
                    == u'Published') and string_empty(event.location_name):
                flash(
                    "Your event was saved. To publish your event please review the highlighted fields below.",
                    "warning")
                return redirect(
                    url_for('.edit_view', event_id=event.id) +
                    "#highlight=location_name")

            return redirect(url_for('.details_view', event_id=event_id))
Ejemplo n.º 13
0
def display_debug_info():
    return render_template('gentelella/admin/super_admin/debug/debug.html',
                           ip=get_real_ip(),
                           cookies=request.cookies,
                           navigation_bar=list_navbar(),
                           headers=request.headers)
Ejemplo n.º 14
0
def get_current_timezone():
    match = geolite2.lookup(get_real_ip(True) or '127.0.0.1')
    if match is not None:
        return match.timezone
    else:
        return 'UTC'