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))}
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
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
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
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]
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)