Example #1
0
def gravatar_url(user, size=80):
    try:
        url = user.socialaccount_set.all()[0].get_avatar_url()
    except:
        url = None

    if url:
        return url
    else:
        return get_gravatar_url(user, size)
Example #2
0
def lookup(username):
    emails = []

    # try LDAP email
    emails.append(utils.get_ldap_email(username, app.config['LDAP_BASE_URL']))

    # try Gerrit email
    emails.append(utils.get_gerrit_email(username, app.config['GERRIT_API_BASE_URL']))

    # filter null and duplicates
    emails = list(set(filter(None.__ne__, emails)))

    gravatar_urls = [utils.get_gravatar_url(email) for email in emails]

    # check existing avatar url
    current_avatar_url = utils.get_gerrit_avatar(username, app.config['GERRIT_API_BASE_URL'])

    # TODO merge into index.html
    return flask.render_template('lookup.html', gravatar_urls = gravatar_urls, current_avatar_url = current_avatar_url)
Example #3
0
def provider_details(request, number):
    #if check_if_resource_exists(number) != 200:
    #    return render(request, 'providerregistry/404.html', {})

    provider = get_resource(number)
    basic = provider.get("basic", {})
    random_background = "%s.jpg" % (random.randrange(1, 27))

    #Get Gravatar URL
    gravatar_email = basic.get('gravatart_email', "")
    gravatar_url = get_gravatar_url(hash_gravatar_email(gravatar_email))

    context = {
        "enumeration": provider,
        "random_bg_image": random_background,
        "gravatar_url": gravatar_url,
        "PROVIDER_STATIC_HOST": settings.PROVIDER_STATIC_HOST,
    }

    return render(request, 'providerregistry/details.html', context)
Example #4
0
def provider_profile(request, number):
    #if check_if_resource_exists(number) != 200:
    #    return render(request, 'providerregistry/404.html', {})

    random_background = "%s.jpg" % (random.randrange(1, 27))
    provider = get_resource(number)

    basic = provider.get("basic", {})

    pecos = get_pecos_base(number)

    #Get Gravatar URL
    gravatar_email = basic.get('gravatart_email', "")
    gravatar_url = get_gravatar_url(hash_gravatar_email(gravatar_email))

    #Get Google q
    addresses = provider.get("addresses", [])
    qooglemap_q = ""
    location = {}
    for a in addresses:
        if a.get("address_purpose", "") == "LOCATION":
            location = a

    googlemap_q = googlemap_address_query(
        address_1=location.get("address_1", ""),
        address_2=location.get("address_2", ""),
        city=location.get("city", ""),
        state=location.get("state", ""),
        zipcode=location.get("zip", ""),
    )
    context = {
        "enumeration": provider,
        "pecos": pecos,
        "random_bg_image": random_background,
        "gravatar_url": gravatar_url,
        "googlemap_q": googlemap_q,
        "PROVIDER_STATIC_HOST": settings.PROVIDER_STATIC_HOST
    }

    return render(request, 'providerregistry/stylish-portfolio.html', context)
Example #5
0
 def avatar(self):
     try:
         return get_gravatar_url(self.created_by)
     except:
         return None
Example #6
0
 def last_activity_avatar(self):
     try:
         return get_gravatar_url(self.last_activity.user)
     except:
         return None
Example #7
0
    def post(self):
        session_user = self.get_session_user()

        first_name = self.request.get('first_name')
        last_name = self.request.get('last_name')
        birthdate_day = dec(self.request.get('birthdate_day'))
        birthdate_month = dec(self.request.get('birthdate_month'))
        birthdate_year = dec(self.request.get('birthdate_year'))
        company = self.request.get('company')
        designation = self.request.get('designation')
        gender = self.request.get('gender')
        t_shirt_size = self.request.get('t_shirt_size')
        email_address = self.request.get('email_address')
        corporate_email_address = self.request.get('corporate_email_address')
        railway_line = self.request.get('railway_line')
        graduation_year = dec(self.request.get('graduation_year'))

        if not session_user.email:
            session_user.email = email_address

        apartment = self.request.get('apartment')
        street_name = self.request.get('street_name')
        landmark = self.request.get('landmark')
        city = self.request.get('city')
        state_province = self.request.get('state_province')
        zip_code = self.request.get('zip_code')
        country = self.request.get('country')

        phone_number_count = int(self.request.get('phone_number_count'), 10)
        phone_numbers = []
        for i in range(1, phone_number_count+1):
            phone_number = self.request.get('phone_number_' + str(i))
            phone_type = self.request.get('phone_type_' + str(i))
            phone_numbers.append((phone_number, phone_type))

        #enable_notifications = True if self.request.get('enable_notifications') else False
        #enable_public_profile = True if self.request.get('enable_public_profile') else False
        #enable_administrator_contact = True if self.request.get('enable_administrator_contact') else False
        enable_notifications = True
        enable_public_profile = True
        enable_administrator_contact = True

        # Create database entries.
        to_store = []
        user = models.User(username=session_user.username,
            email=email_address,
            signin_email=session_user.email,
            identifier=session_user.identifier)
        if corporate_email_address:
            user.corporate_email = corporate_email_address
        user.nickname = first_name + ' ' + last_name
        user.enable_notifications = enable_notifications
        user.enable_public_profile = enable_public_profile
        user.enable_administrator_contact = enable_administrator_contact
        user.wants_activation = True
        user.has_updated_profile = True
        user.auth_provider = session_user.auth_provider
        user.is_active = False
        if session_user.photo:
            user.photo = session_user.photo
            user.gravatar = get_gravatar_url(email_address)
        user.put()

        person = models.Person()
        person.user = user
        person.first_name = first_name
        person.last_name = last_name
        person.company = company
        person.designation = designation
        person.birthdate = datetime(birthdate_year, birthdate_month, birthdate_day).date()
        person.gender = gender
        person.graduation_year = graduation_year
        person.t_shirt_size = t_shirt_size
        person.put()

        host_info = models.UserHostInformation()
        host_info.user = user
        host_info.ip_address = self.request.remote_addr
        host_info.http_user_agent = self.request.headers.get('User-Agent', '')
        host_info.http_accept_language = self.request.headers.get('Accept-Language', '')
        host_info.http_accept_encoding = self.request.headers.get('Accept-Encoding', '')
        host_info.http_accept_charset = self.request.headers.get('Accept-Charset', '')
        host_info.http_accept = self.request.headers.get('Accept', '')
        host_info.http_referer = self.request.headers.get('Referer', '')
        to_store.append(host_info)

        openid = models.OpenID(username=session_user.username)
        openid.nickname = session_user.nickname
        openid.email = session_user.email
        openid.auth_provider = session_user.auth_provider
        openid.identifier = session_user.identifier
        openid.profile_url = session_user.profile_url
        openid.user = user
        openid.is_primary_id = True
        to_store.append(openid)

        address_line = ', '.join([
            apartment,
            street_name,
            landmark,
            '' if railway_line == 'other' else models.RAILWAY_LINES.get(railway_line, '') + ' Railway Line',
            city,
            state_province + ' ' + zip_code,
            COUNTRY_NAME_ISO_ALPHA_3_TABLE.get(country, ''),
            ])
        address = models.PersonAddress(person=person,
            address_line=address_line,
            street_name=street_name,
            zip_code=zip_code,
            state_province=state_province,
            country=country,
            landmark=landmark,
            apartment=apartment,
            city=city,
            nearest_railway_line=railway_line,
            address_type='home')
        to_store.append(address)

        for (number, phone_type) in phone_numbers:
            if number.strip():
                phone = models.PersonPhone(person=person,
                    number=number,
                    phone_type=phone_type)
                to_store.append(phone)

        # Batch write all non-dependent entities.
        db.put(to_store)
        models.User.increment_user_count()
        queue_mail_task(url='/worker/mail/signup_notification/' + str(user.key()), method='GET')
        
        rendered_template = render_template('activation_reminder.html')
        self.response.out.write(rendered_template)