def saved_reports(request, domain, template="reports/reports_home.html"): user = request.couch_user if not (request.couch_user.can_view_reports() or request.couch_user.get_viewable_reports()): raise Http404 configs = ReportConfig.by_domain_and_owner(domain, user._id).all() scheduled_reports = [s for s in ReportNotification.by_domain_and_owner(domain, user._id).all() if not hasattr(s, 'report_slug') or s.report_slug != 'admin_domains'] context = dict( couch_user=request.couch_user, domain=domain, configs=configs, scheduled_reports=scheduled_reports, report=dict( title="Select a Report to View", show=user.can_view_reports() or user.get_viewable_reports(), slug=None, is_async=True, section_name=ProjectReport.section_name, ), ) if request.couch_user: util.set_report_announcements_for_user(request, user) return render(request, template, context)
def saved_reports(request, domain, template="reports/reports_home.html"): user = request.couch_user if not (request.couch_user.can_view_reports() or request.couch_user.get_viewable_reports()): raise Http404 configs = ReportConfig.by_domain_and_owner(domain, user._id) def _is_valid(rn): # the _id check is for weird bugs we've seen in the wild that look like # oddities in couch. return hasattr(rn, "_id") and rn._id and (not hasattr(rn, "report_slug") or rn.report_slug != "admin_domains") scheduled_reports = [rn for rn in ReportNotification.by_domain_and_owner(domain, user._id) if _is_valid(rn)] scheduled_reports = sorted(scheduled_reports, key=lambda rn: rn.configs[0].name) context = dict( couch_user=request.couch_user, domain=domain, configs=configs, scheduled_reports=scheduled_reports, report=dict( title=_("My Saved Reports"), show=user.can_view_reports() or user.get_viewable_reports(), slug=None, is_async=True, section_name=ProjectReport.section_name, ), ) if request.couch_user: util.set_report_announcements_for_user(request, user) return render(request, template, context)
def saved_reports(request, domain, template="reports/reports_home.html"): user = request.couch_user if not (request.couch_user.can_view_reports() or request.couch_user.get_viewable_reports()): raise Http404 configs = ReportConfig.by_domain_and_owner(domain, user._id) def _is_valid(rn): # the _id check is for weird bugs we've seen in the wild that look like # oddities in couch. return hasattr(rn, "_id") and rn._id and (not hasattr(rn, 'report_slug') or rn.report_slug != 'admin_domains') scheduled_reports = [rn for rn in ReportNotification.by_domain_and_owner(domain, user._id) if _is_valid(rn)] scheduled_reports = sorted(scheduled_reports, key=lambda rn: rn.configs[0].name) context = dict( couch_user=request.couch_user, domain=domain, configs=configs, scheduled_reports=scheduled_reports, report=dict( title=_("My Saved Reports"), show=user.can_view_reports() or user.get_viewable_reports(), slug=None, is_async=True, section_name=ProjectReport.section_name, ), ) if request.couch_user: util.set_report_announcements_for_user(request, user) return render(request, template, context)
def saved_reports(request, domain, template="reports/reports_home.html"): user = request.couch_user if not (request.couch_user.can_view_reports() or request.couch_user.get_viewable_reports()): raise Http404 configs = ReportConfig.by_domain_and_owner(domain, user._id) def _is_valid(rn): # the _id check is for weird bugs we've seen in the wild that look like # oddities in couch. return hasattr(rn, "_id") and rn._id and (not hasattr(rn, 'report_slug') or rn.report_slug != 'admin_domains') scheduled_reports = [rn for rn in ReportNotification.by_domain_and_owner(domain, user._id) if _is_valid(rn)] scheduled_reports = sorted(scheduled_reports, key=lambda rn: rn.configs[0].name) for report in scheduled_reports: time_difference = get_timezone_difference(domain) (report.hour, day_change) = recalculate_hour(report.hour, int(time_difference[:3]), int(time_difference[3:])) report.minute = 0 if day_change: report.day = calculate_day(report.interval, report.day, day_change) context = dict( couch_user=request.couch_user, domain=domain, configs=configs, scheduled_reports=scheduled_reports, report=dict( title=_("My Saved Reports"), show=user.can_view_reports() or user.get_viewable_reports(), slug=None, is_async=True, section_name=ProjectReport.section_name, ), ) if request.couch_user: util.set_report_announcements_for_user(request, user) return render(request, template, context)
def set_announcements(self): if self.request.couch_user: util.set_report_announcements_for_user(self.request, self.request.couch_user)