def get_context_data(self, **kwargs): context = super(PollContextMixin, self).get_context_data(**kwargs) org = self.request.org context["org"] = org context["gender_stats"] = org.get_gender_stats() context["age_stats"] = org.get_age_stats() context["states"] = [dict(id=k, name=v) for k, v in Boundary.get_org_top_level_boundaries_name(org).items()] main_poll = self.derive_main_poll() context["latest_poll"] = main_poll if main_poll: top_question = main_poll.get_questions().first() context["top_question"] = top_question if top_question: gender_stats = top_question.get_gender_stats() total_gender = 0 for elt in gender_stats: total_gender += elt["set"] gender_stats_dict = { elt["label"].lower(): dict( count=elt["set"], percentage=int(round(elt["set"] * 100 / float(total_gender))) ) for elt in gender_stats if total_gender } context["gender_stats"] = gender_stats_dict age_stats = top_question.get_age_stats() total_age = 0 for elt in age_stats: total_age += elt["set"] context["age_stats"] = [ dict(name=elt["label"], y=int(round(elt["set"] * 100 / float(total_age)))) for elt in age_stats if total_age ] context["locations_stats"] = top_question.get_location_stats() context["categories"] = ( Category.objects.filter(org=org, is_active=True) .prefetch_related(Prefetch("polls", queryset=Poll.objects.filter(is_active=True).order_by("-poll_date"))) .order_by("name") ) context["polls"] = Poll.get_public_polls(org=org).order_by("-poll_date") context["related_stories"] = [] if main_poll: related_stories = Story.objects.filter(org=org, is_active=True, category=main_poll.category) related_stories = related_stories.order_by("-featured", "-created_on") context["related_stories"] = related_stories context["main_stories"] = Story.objects.filter(org=org, featured=True, is_active=True).order_by("-created_on") return context
def get_context_data(self, **kwargs): context = super(PollContextMixin, self).get_context_data(**kwargs) org = self.request.org context['org'] = org main_poll = self.derive_main_poll() context['latest_poll'] = main_poll context['categories'] = Category.objects.filter(org=org, is_active=True).order_by('name') if org.is_district: context['polls'] = Poll.get_public_polls(org=org).order_by('-poll_date') else: object_org = org.__class__.objects if org.is_country: orgs = object_org.filter(country=org) if org.is_state: orgs = object_org.filter(state=org) context['polls'] = Poll.get_parent_polls(org=org, children=orgs).order_by('-poll_date') context['related_stories'] = [] if main_poll: related_stories = Story.objects.filter(org=org, is_active=True, category=main_poll.category) related_stories = related_stories.order_by('-featured', '-created_on') context['related_stories'] = related_stories return context
def get_context_data(self, **kwargs): context = super(PollContextMixin, self).get_context_data(**kwargs) org = self.request.org context["org"] = org main_poll = self.derive_main_poll() context["latest_poll"] = main_poll context["categories"] = Category.objects.filter(org=org, is_active=True).order_by("name") context["polls"] = Poll.get_public_polls(org=org).order_by("-poll_date") context["related_stories"] = [] if main_poll: related_stories = Story.objects.filter(org=org, is_active=True, category=main_poll.category) related_stories = related_stories.order_by("-featured", "-created_on") context["related_stories"] = related_stories return context
def get_context_data(self, **kwargs): context = super(PollContextMixin, self).get_context_data(**kwargs) org = self.request.org context['org'] = org main_poll = self.derive_main_poll() context['latest_poll'] = main_poll context['categories'] = Category.objects.filter(org=org, is_active=True).order_by('name') context['polls'] = Poll.get_public_polls(org=org).order_by('-poll_date') context['related_stories'] = [] if main_poll: related_stories = Story.objects.filter(org=org, is_active=True, category=main_poll.category) related_stories = related_stories.order_by('-featured', '-created_on') context['related_stories'] = related_stories return context
def get_context_data(self, **kwargs): context = super(PollContextMixin, self).get_context_data(**kwargs) org = self.request.org context["org"] = org main_poll = self.derive_main_poll() context["latest_poll"] = main_poll context["categories"] = Category.objects.filter(org=org, is_active=True).order_by("name") context["polls"] = Poll.get_public_polls(org=org).order_by("-poll_date") context["related_stories"] = [] if main_poll: related_stories = Story.objects.filter(org=org, is_active=True, category=main_poll.category) related_stories = related_stories.order_by("-featured", "-created_on") context["related_stories"] = related_stories return context
def get_context_data(self, **kwargs): context = super(PollContextMixin, self).get_context_data(**kwargs) org = self.request.org context['org'] = org main_poll = self.derive_main_poll() context['latest_poll'] = main_poll context['categories'] = Category.objects.filter( org=org, is_active=True).order_by('name') context['polls'] = Poll.get_public_polls( org=org).order_by('-poll_date') context['related_stories'] = [] if main_poll: related_stories = Story.objects.filter(org=org, is_active=True, category=main_poll.category) related_stories = related_stories.order_by('-featured', '-created_on') context['related_stories'] = related_stories return context
def get_context_data(self, **kwargs): context = super(PollContextMixin, self).get_context_data(**kwargs) org = self.request.org context["org"] = org context["states"] = sorted( [dict(id=k, name=v) for k, v in Boundary.get_org_top_level_boundaries_name(org).items()], key=lambda c: c["name"], ) main_poll = self.derive_main_poll() context["latest_poll"] = main_poll if main_poll: top_question = main_poll.get_questions().first() context["top_question"] = top_question if top_question: gender_stats = top_question.get_gender_stats() total_gender = 0 for elt in gender_stats: total_gender += elt["set"] gender_label_dict = {str(v.lower()): k.lower() for k, v in GenderSegment.GENDERS.items()} gender_stats_dict = { gender_label_dict.get(elt["label"].lower()): dict( count=elt["set"], percentage=int(round(elt["set"] * 100 / float(total_gender))) ) for elt in gender_stats if total_gender } context["gender_stats"] = gender_stats_dict age_stats = top_question.get_age_stats() total_age = 0 for elt in age_stats: total_age += elt["set"] context["age_stats"] = [ dict(name=elt["label"], y=int(round(elt["set"] * 100 / float(total_age)))) for elt in age_stats if total_age ] context["locations_stats"] = top_question.get_location_stats() if not main_poll or not main_poll.get_questions().first(): context["gender_stats"] = org.get_gender_stats() context["age_stats"] = org.get_age_stats() polls = Poll.get_public_polls(org=org).order_by("-poll_date").select_related("category") categories_dict = defaultdict(list) for poll in polls: categories_dict[poll.category.name].append(poll) context["categories"] = sorted( [dict(name=k, polls=v) for k, v in categories_dict.items()], key=lambda c: c["name"] ) context["polls"] = polls context["main_stories"] = Story.objects.filter(org=org, featured=True, is_active=True).order_by("-created_on") return context