def rows(self): rows = [] selected_app = self.request_params.get(SelectApplicationFilter.slug, '') for user in self.users: last_seen = last_sync = app_name = None key = make_form_couch_key(self.domain, user_id=user.user_id, app_id=selected_app or None) xform = XFormInstance.view( "reports_forms/all_forms", startkey=key + [{}], endkey=key, include_docs=True, descending=True, reduce=False, limit=1, ).first() if xform: last_seen = xform.received_on build_version, build_version_source = get_build_version(xform) if xform.app_id: try: app = get_app(self.domain, xform.app_id) except ResourceNotFound: pass else: app_name = app.name else: app_name = get_meta_appversion_text(xform) build_html = _build_html(build_version, build_version_source) app_name = app_name or _("Unknown App") app_name = format_html( u'{} {}', app_name, mark_safe(build_html), ) if app_name is None and selected_app: continue last_sync_log = SyncLog.last_for_user(user.user_id) if last_sync_log: last_sync = last_sync_log.date rows.append([ user.username_in_report, _fmt_date(last_seen), _fmt_date(last_sync), app_name or "---" ]) return rows
def rows(self): rows = [] selected_app = self.request_params.get(SelectApplicationFilter.slug, '') for user in self.users: last_seen = last_sync = app_name = None key = make_form_couch_key(self.domain, user_id=user.user_id, app_id=selected_app or None) xform = XFormInstance.view( "reports_forms/all_forms", startkey=key+[{}], endkey=key, include_docs=True, descending=True, reduce=False, limit=1, ).first() if xform: last_seen = xform.received_on build_version, build_version_source = get_build_version(xform) if xform.app_id: try: app = get_app(self.domain, xform.app_id) except ResourceNotFound: pass else: app_name = app.name else: app_name = get_meta_appversion_text(xform) build_html = _build_html(build_version, build_version_source) app_name = app_name or _("Unknown App") app_name = format_html( u'{} {}', app_name, mark_safe(build_html), ) if app_name is None and selected_app: continue last_sync_log = SyncLog.last_for_user(user.user_id) if last_sync_log: last_sync = last_sync_log.date rows.append( [user.username_in_report, _fmt_date(last_seen), _fmt_date(last_sync), app_name or "---"] ) return rows
def rows(self): rows = [] selected_app = self.request_params.get(SelectApplicationField.slug, '') UNKNOWN = _("unknown") for user in self.users: last_seen = self.table_cell(-1, _("Never")) app_name = None key = make_form_couch_key(self.domain, user_id=user.get('user_id'), app_id=selected_app if selected_app else None) data = XFormInstance.view( "reports_forms/all_forms", startkey=key+[{}], endkey=key, include_docs=True, descending=True, reduce=False, limit=1, ).first() if data: last_seen = util.format_relative_date(data.received_on) build_version = get_build_version(data) or UNKNOWN if getattr(data, 'app_id', None): try: app = get_app(self.domain, data.app_id) except ResourceNotFound: pass else: app_name = "%s [%s]" % (app.name, build_version) else: app_name = get_meta_appversion_text(data) app_name = app_name or _("Unknown App") if app_name is None and selected_app: continue rows.append([user.get('username_in_report'), last_seen, app_name or "---"]) return rows
def rows(self): rows = [] selected_app = self.request_params.get(SelectApplicationFilter.slug, None) for user in self.users: last_seen = last_sync = app_name = None xform = get_last_form_submission_for_user_for_app( self.domain, user.user_id, selected_app) if xform: last_seen = xform.received_on build_version, build_version_source = get_build_version(xform) if xform.app_id: try: app = get_app(self.domain, xform.app_id) except ResourceNotFound: pass else: app_name = app.name else: app_name = get_meta_appversion_text(xform) build_html = _build_html(build_version, build_version_source) app_name = app_name or _("Unknown App") app_name = format_html( u'{} {}', app_name, mark_safe(build_html), ) if app_name is None and selected_app: continue last_sync_log = SyncLog.last_for_user(user.user_id) if last_sync_log: last_sync = last_sync_log.date rows.append( [user.username_in_report, _fmt_date(last_seen), _fmt_date(last_sync), app_name or "---"] ) return rows
def rows(self): rows = [] selected_app = self.request_params.get(SelectApplicationFilter.slug, '') def _fmt_date(date): def _timedelta_class(delta): if delta > timedelta(days=7): return "label label-important" elif delta > timedelta(days=3): return "label label-warning" else: return "label label-success" if not date: return self.table_cell(-1, '<span class="label">{0}</span>'.format(_("Never"))) else: return self.table_cell(date.toordinal(), '<span class="{cls}">{text}</span>'.format( cls=_timedelta_class(datetime.utcnow() - date), text=naturaltime(date), )) for user in self.users: last_seen = last_sync = app_name = None key = make_form_couch_key(self.domain, user_id=user.user_id, app_id=selected_app or None) xform = XFormInstance.view( "reports_forms/all_forms", startkey=key+[{}], endkey=key, include_docs=True, descending=True, reduce=False, limit=1, ).first() if xform: last_seen = xform.received_on build_version, build_version_source = get_build_version(xform) if xform.app_id: try: app = get_app(self.domain, xform.app_id) except ResourceNotFound: pass else: app_name = app.name else: app_name = get_meta_appversion_text(xform) build_html = _build_html(build_version, build_version_source) app_name = app_name or _("Unknown App") app_name = format_html( u'{} {}', app_name, mark_safe(build_html), ) if app_name is None and selected_app: continue last_sync_log = SyncLog.last_for_user(user.user_id) if last_sync_log: last_sync = last_sync_log.date rows.append( [user.username_in_report, _fmt_date(last_seen), _fmt_date(last_sync), app_name or "---"] ) return rows
def rows(self): rows = [] selected_app = self.request_params.get(SelectApplicationFilter.slug, '') def _fmt_date(date): def _timedelta_class(delta): if delta > timedelta(days=7): return "label label-important" elif delta > timedelta(days=3): return "label label-warning" else: return "label label-success" if not date: return self.table_cell( -1, '<span class="label">{0}</span>'.format(_("Never"))) else: return self.table_cell( date.toordinal(), '<span class="{cls}">{text}</span>'.format( cls=_timedelta_class(datetime.utcnow() - date), text=naturaltime(date), )) for user in self.users: last_seen = last_sync = app_name = None key = make_form_couch_key(self.domain, user_id=user.user_id, app_id=selected_app or None) xform = XFormInstance.view( "reports_forms/all_forms", startkey=key + [{}], endkey=key, include_docs=True, descending=True, reduce=False, limit=1, ).first() if xform: last_seen = xform.received_on build_version, build_version_source = get_build_version(xform) if xform.app_id: try: app = get_app(self.domain, xform.app_id) except ResourceNotFound: pass else: app_name = app.name else: app_name = get_meta_appversion_text(xform) build_html = _build_html(build_version, build_version_source) app_name = app_name or _("Unknown App") app_name = format_html( u'{} {}', app_name, mark_safe(build_html), ) if app_name is None and selected_app: continue last_sync_log = SyncLog.last_for_user(user.user_id) if last_sync_log: last_sync = last_sync_log.date rows.append([ user.username_in_report, _fmt_date(last_seen), _fmt_date(last_sync), app_name or "---" ]) return rows