Exemplo n.º 1
0
def index(request):
    """
    Main entrance page.
    """
    _, username, email, _, _ = get_app_credentials_from_auth_value(
        request.COOKIES.get(APP_AUTH_KEY, None))

    long_url = request.POST.get('long_url', None)
    short_url = request.POST.get('short_url', None)
    go_url = custom_reverse_url('go_url:index')
    # get popular URLs
    message = None
    if username and long_url:
        try:
            update_entry(long_url, short_url, username)
            message = "Added %s as %s%s" % (long_url, go_url, short_url)
        except GoUrlException as e:
            message = e.message

    top_urls = get_top_urls()
    context = {
        'go_url': go_url,
        'signin_url': add_query_parameter(SSO_URL, 'service', 'go_url'),
        'signout_url': custom_reverse_url('go_url:signout'),
        'company_nickname': constants.COMPANY_NICKNAME,
        'app_urls': get_app_urls(),
        'email': email,
        'message': message,
        'short_url': request.GET.get('short_url', ''),
        'top_urls': top_urls,
    }
    return render_to_response('go_url/index.html',
                              context,
                              context_instance=RequestContext(request))
Exemplo n.º 2
0
def percentpost(request):
    """
    POST to URL forwarder (preserves the query)
    """
    url = custom_reverse_url(APP_NAME + ':percent')
    for param in ('departments', 'titles', 'contractors', 'inactives'):
        value = request.POST.get(param, None)
        if value:
            url = add_query_parameter(url, param, value)

    return HttpResponseRedirect(url)
Exemplo n.º 3
0
def index(request):
    """
    Main entrance page.
    """
    _, username, email, _, _ = get_app_credentials_from_auth_value(
        request.COOKIES.get(APP_AUTH_KEY, None))

    if username and email:
        # signed in, now forward to the roulette port
        url = get_config_value('urls.ROULETTE_SERVER')
        return HttpResponseRedirect(url)
    else:
        return HttpResponseRedirect(
            add_query_parameter(SSO_URL, 'service', APP_NAME))
Exemplo n.º 4
0
def jump_url(request, short_url):
    short_url = short_url.rstrip('/')
    try:
        url_obj = models.URL.objects.get(short_url=short_url)
    except models.URL.DoesNotExist:
        return HttpResponseRedirect(add_query_parameter(
            custom_reverse_url('go_url:index'), 'short_url', short_url))

    obj = models.URL.objects.filter(id=url_obj.id)
    obj.update(total_clicks=F('total_clicks') + 1)
    obj.update(last_month_clicks=F('last_month_clicks') + 1)
    obj.update(decayed_clicks=F('decayed_clicks') + 1)

    return HttpResponseRedirect(url_obj.long_url)
Exemplo n.º 5
0
def index(request):
    """
    Main entrance page.
    """
    _, username, email, _, _ = get_app_credentials_from_auth_value(
        request.COOKIES.get(APP_AUTH_KEY, None))

    context = {
        'email': email,
        'signin_url': add_query_parameter(SSO_URL, 'service', APP_NAME),
        'signout_url': custom_reverse_url(APP_NAME + ':signout'),
        'app_urls': get_app_urls()
    }
    return render_to_response(APP_NAME + '/index.html',
                              context,
                              context_instance=RequestContext(request))
Exemplo n.º 6
0
def index(request):
    """
    Main entrance page.
    """
    _, username, email, displayName, _ = get_app_credentials_from_auth_value(
        request.COOKIES.get(APP_AUTH_KEY, None))

    signin_url = add_query_parameter(SSO_URL, 'service', APP_NAME)
    context = {
        'email': email,
        'displayName': displayName,
        'signin_url': signin_url,
        'signout_url': custom_reverse_url(APP_NAME + ':signout'),
        'better360_url': custom_reverse_url(APP_NAME + ':index'),
        'app_urls': get_app_urls(),
        'content': None
    }

    if not email:
        return HttpResponseRedirect(signin_url)

    person_name = request.REQUEST.get('personName')
    project_name = request.REQUEST.get('projectName')
    if person_name and project_name:
        context['content'] = get_dilbert_perf(
            person_name,
            project_name,
            int(request.REQUEST.get('knowledge')) - 1,
            int(request.REQUEST.get('initiative')) - 1,
            int(request.REQUEST.get('dependability')) - 1,
            int(request.REQUEST.get('adaptability')) - 1,
            int(request.REQUEST.get('quality')) - 1,
            int(request.REQUEST.get('quantity')) - 1
            )
        context['content'] = ' '.join(context['content'])
        context['person_name'] = person_name
        context['project_name'] = project_name

    return render_to_response(APP_NAME + '/index.html',
                              context,
                              context_instance=RequestContext(request))
Exemplo n.º 7
0
def index(request):
    """
    Main entrance page
    """
    auth_key = request.COOKIES.get('auth_key', None)
    if auth_key:
        try:
            auth_obj = models.SSOAuthInfo.objects.get(auth_key=auth_key)

            service = request.GET.get('service', None)
            if service and service in VALID_SERVICES.keys():
                token = get_temporary_token(auth_key, service)
                url = VALID_SERVICES[service]
                return HttpResponseRedirect('%s/validate_token/%s' %
                                            (url, token))

            context = {
                'dsso_url': custom_reverse_url('dsso:index'),
                'signout_url': custom_reverse_url('dsso:signout'),
                'service_to_url': SERVICE_TO_URL,
                'company_name': constants.COMPANY_NAME,
                'email': auth_obj.mail
            }
            print "DSSO service mapping: %s" % SERVICE_TO_URL
            return render_to_response('dsso/service_options.html',
                                      context,
                                      context_instance=RequestContext(request))
        except models.SSOAuthInfo.DoesNotExist:
            pass

    username = request.POST.get('username', None)
    password = request.POST.get('password', None)

    service = request.REQUEST.get('service', '')
    print "SERVICE:%s"%service
    context = {
        'dsso_url': custom_reverse_url('dsso:index'),
        'username': username or '',
        'password': password or '',
        'company_name': constants.COMPANY_NAME,
        'company_nickname': constants.COMPANY_NICKNAME,
        'ldap_domain': ldap_settings.LDAP_DOMAIN,
        'service': request.GET.get('service', ''),
    }

    if service and service not in VALID_SERVICES:
        context['error_msg'] = ("Service '%s' not found. Try %s" %
                                (service, VALID_SERVICES.keys()))

    if username and password:
        user_info = get_ldap_info(username, password)
        if 'error' in user_info:
            context['error_msg'] = user_info['error']

        else:
            # authenticated, save to DB, set cookie, and forward
            auth_key = get_authentication_cookie(user_info)
            url = custom_reverse_url('dsso:validate_cookie')
            if service and service != 'dsso':
                url = add_query_parameter(url, 'service', service)
            response = HttpResponseRedirect(url)
            set_cookie(response, 'auth_key', auth_key)
            return response

    return render_to_response('dsso/index.html',
                              context,
                              context_instance=RequestContext(request))
Exemplo n.º 8
0
def index(request, query=None):
    """
    Main entrance page.
    """
    post_query = request.POST.get('query')
    if post_query:
        return HttpResponseRedirect(
            custom_reverse_url(APP_NAME + ':index') + post_query)

    cn, _, email, displayName, _ = get_app_credentials_from_auth_value(
        request.COOKIES.get(APP_AUTH_KEY, None))

    if email:
        show_inactive_user = True
    else:
        show_inactive_user = False

    extra_hierarchy_levels = 0
    if not query:
        if email:
            ldap_objs = get_object_by_query(email, show_inactive_user)
        else:
            ldap_objs = get_object_by_query(who_settings.BOSS,
                                            show_inactive_user)
    else:
        while query.endswith('+'):
            query = query[:-1]
            extra_hierarchy_levels += 1
        ldap_objs = get_object_by_query(query, show_inactive_user)

    who_url = custom_reverse_url(APP_NAME + ':index')

    possible_objs = []
    json_relationships = None
    data_properties = None
    chart_size = None

    if len(ldap_objs) > 1:
        possible_objs = ldap_objs

    elif len(ldap_objs) == 1:
        ldap_obj = ldap_objs[0]

        manager_obj = LDAPUser.objects.get(id=ldap_obj.manager_id)
        sibling_obj_set = set()
        if ldap_obj == manager_obj:
            # big boss
            pass
        else:
            for _obj in manager_obj.reports:
                if _obj != ldap_obj and _obj != manager_obj:
                    # 1) skip the report right under manager
                    sibling_obj_set.add(_obj)

        # recursive call, potentially slow:
        relationships, ldap_objects = get_js_hierarchy(
            request,
            who_url,
            manager_obj,
            None,
            3 + extra_hierarchy_levels,
            copy(sibling_obj_set),
            show_inactive_user)

        json_relationships = json.dumps(relationships)
        #print "Json relationships:%s" % json_relationships

        data_properties = get_data_properties(ldap_obj, ldap_objects)
        #print "Styling:%s" % data_properties

        #chart_size = ('large' if len(relationships) <= 6 else
        #              'medium' if len(relationships) <= 12 else 'small')
        chart_size = 'medium'

    context = {
        'who_url': who_url,
        'email': email,
        'displayName': displayName,
        'company_employee_name': constants.COMPANY_EMPLOYEE_NAME,
        'query': query or '',
        'extra_hierarchy_header': '+' * (extra_hierarchy_levels + 1),
        'signin_url': add_query_parameter(SSO_URL, 'service', APP_NAME),
        'signout_url': custom_reverse_url(APP_NAME + ':signout'),
        'percent_url': custom_reverse_url(APP_NAME + ':percent'),
        'app_urls': get_app_urls(),
        # ambiguous query, list choices
        'possible_objs': possible_objs,
        # for graphing:
        'json_relationships': json_relationships,
        'data_properties': data_properties,
        'chart_size': chart_size,
    }
    return render_to_response(APP_NAME + '/index.html',
                              context,
                              context_instance=RequestContext(request))
Exemplo n.º 9
0
def percent(request):
    cn, _, email, _, _ = get_app_credentials_from_auth_value(
        request.COOKIES.get(APP_AUTH_KEY, None))

    who_url = custom_reverse_url(APP_NAME + ':index')
    percentpost_url = custom_reverse_url(APP_NAME + ':percentpost')

    if not email:
        return HttpResponseRedirect(who_url)

    ldap_objs = get_object_by_query(email, show_inactive_user=False)
    if len(ldap_objs) != 1:
        return HttpResponse("Error, unable to find a unique person "
                            "for '%s'" % email)
    ldap_obj = ldap_objs[0]

    departments = request.GET.get('departments', '')
    titles = request.GET.get('titles', '')
    include_contractors = request.GET.get('contractors', '')
    include_inactives = request.GET.get('inactives', '')

    # calculate seniority
    youngens1, oldfarts1 = get_employee_ranking(
        ldap_obj,
        include_contractors=False,
        include_inactives=False)
    youngens2, oldfarts2 = get_employee_ranking(
        ldap_obj,
        departments=departments,
        titles=titles,
        include_contractors=include_contractors,
        include_inactives=include_inactives)
    #print "HEY %s / %s" % (oldfarts.count(), youngens.count())

    total_queried_employees = (len(youngens1) + len(oldfarts1))
    percentile1 = ((float(len(youngens1)) / total_queried_employees)
                   if total_queried_employees > 0 else 0)
    percentile1 *= 100

    total_queried_employees = (len(youngens2) + len(oldfarts2))
    percentile2 = ((float(len(youngens2)) / total_queried_employees)
                   if total_queried_employees > 0 else 0)
    percentile2 *= 100

    def add_date_attribute(ldap_objs):
        for ldap_obj in ldap_objs:
            ldap_obj.hire_date = ldap_obj.hire_date.strftime("%Y-%m-%d")
        return ldap_objs

    context = {
        'who_url': who_url,
        'percentpost_url': percentpost_url,
        'email': email,
        'displayName': ldap_obj.displayName,
        'company_employee_name': constants.COMPANY_EMPLOYEE_NAME,
        'signin_url': add_query_parameter(SSO_URL, 'service', APP_NAME),
        'signout_url': custom_reverse_url(APP_NAME + ':signout'),
        'app_urls': get_app_urls(),

        # form for query ranking
        'departments': departments,
        'titles': titles,
        'include_contractors': include_contractors,
        'include_inactives': include_inactives,

        # display objects
        'hire_date': ldap_obj.hire_date,
        'company_percentile': percentile1,
        'company_youngens': add_date_attribute(youngens1),
        'company_oldfarts': add_date_attribute(oldfarts1),
        'specific_percentile': percentile2,
        'specific_youngens': add_date_attribute(youngens2),
        'specific_oldfarts': add_date_attribute(oldfarts2),
    }
    #print "%s %s"%(youngens2[0].hire_date, type(youngens2[0].hire_date))
    #print "%s" % youngens2[0].hire_date.strftime("%Y-%m-%d")
    return render_to_response(APP_NAME + '/percent.html',
                              context,
                              context_instance=RequestContext(request))
Exemplo n.º 10
0
 def get(self):
     print "MAIN %s" % self.current_user
     if not self.current_user:
         self.redirect(add_query_parameter(SSO_URL, 'service', APP_NAME))
     else:
         self.render("index.html", messages=MessageMixin.cache)