Ejemplo n.º 1
0
def ge_admin_list_filter(cl, spec):
    "Extends django.contrib.admin's admin_list_filter"

    org = get_current_user().organization
    campaign_tuple = [(campaign.id, campaign.name) 
            for campaign in org.campaign_set.all().order_by('name')]
    spec.lookup_choices = campaign_tuple

    return {'title': spec.title(), 'choices' : list(spec.choices(cl))}
Ejemplo n.º 2
0
def context(request):
    'Custom template_context_processor. Adds context for template pages'

    result = {}
    result['geuser'] = geuser = get_current_user()
    result['organization'] = get_current_organization()

    result['campaign'] = campaign = get_current_campaign()
    if request.user.is_authenticated() and geuser and campaign:
        campaign.add_user(geuser)
        result['campaign_start_date'] = campaign.get_start_date(geuser)
        result['campaign_end_date'] = campaign.get_end_date(geuser)

    result['MEDIA_1'] = settings.MEDIA_URL_1
    result['MEDIA_2'] = settings.MEDIA_URL_2
    return result
Ejemplo n.º 3
0
 def previously(self, user=None):
     """The users' most recent answer on this indicator
     @param user The user who's data we want - defaults to the current user
     @return An Answer object, or None if there is no previous.
     """
     
     if not user:
         user = get_current_user()
     
     try:
         prev = Answer.objects.filter(user = user, 
                                      indicator_id = self.id, 
                                      indicator_content_type = self.content_type,).\
                               order_by('-action_date')[0]
         return prev
     except IndexError:
         return None
Ejemplo n.º 4
0
    def _graph_vals(self):
        'Python array of values that go on the Y axis' 
        start = int( self.number_range_start )
 
        queryset = Answer.objects.by_indicator(get_current_user(), self)
        
        if self.is_percentage:
            end = 100
            step = 10
        else: 
            result = queryset.aggregate(models.Max('answer_num'))
            end = result['answer_num__max'] or self.number_range_end
            end = int(end)

            num_ticks = end - start
            if num_ticks >= 1000:
                step = 100
            elif num_ticks >= 500:
                step = 50
            elif num_ticks >= 150:
                step = 20
            elif num_ticks >= 100:
                step = 10
            elif num_ticks > 50:
                step = 5
            elif num_ticks > 10:
                step = 2
            else:
                step = 1

            end = end + step + 1
        
        vals = [x for x in range(start, end, step)]
        if end not in vals:    # Make sure the end value gets included
            vals.append( end )

        return vals
Ejemplo n.º 5
0
 def others_who_like(self):
     'Users who like this, not including the current user'
     from core.util import get_current_user
     current_user = get_current_user()
     return [user for user in self.liked_by.all() if user != current_user]
Ejemplo n.º 6
0
 def get_refer_url(self):
     """URL for current logged in user to invite others"""
     return "%s?f=%d" % (self.get_host_register_url(), get_current_user().id)