def dashboard(): """Show PYBOSSA Dashboard.""" try: if request.args.get('refresh') == '1': db_jobs = get_dashboard_jobs() for j in db_jobs: DASHBOARD_QUEUE.enqueue(j['name']) msg = gettext('Dashboard jobs enqueued,' ' refresh page in a few minutes') flash(msg) active_users_last_week = dashb.format_users_week() active_anon_last_week = dashb.format_anon_week() draft_projects_last_week = dashb.format_draft_projects() published_projects_last_week = dashb.format_published_projects() update_projects_last_week = dashb.format_update_projects() new_tasks_week = dashb.format_new_tasks() new_task_runs_week = dashb.format_new_task_runs() new_users_week = dashb.format_new_users() returning_users_week = dashb.format_returning_users() update_feed = get_update_feed() response = dict( template='admin/dashboard.html', title=gettext('Dashboard'), active_users_last_week=active_users_last_week, active_anon_last_week=active_anon_last_week, draft_projects_last_week=draft_projects_last_week, published_projects_last_week=published_projects_last_week, update_projects_last_week=update_projects_last_week, new_tasks_week=new_tasks_week, new_task_runs_week=new_task_runs_week, new_users_week=new_users_week, returning_users_week=returning_users_week, update_feed=update_feed, wait=False) return handle_content_type(response) except ProgrammingError as e: response = dict(template='admin/dashboard.html', title=gettext('Dashboard'), wait=True) return handle_content_type(response) except Exception as e: # pragma: no cover current_app.logger.error(e) return abort(500)
def test_format_published_projects_week(self): """Test format published_projects_week works.""" ProjectFactory.create(published=False) p = ProjectFactory.create(published=True) auditlogger = AuditLogger(auditlog_repo, caller='web') auditlogger.log_event(p, p.owner, 'update', 'published', False, True) published_projects_week() day = datetime.utcnow().strftime('%Y-%m-%d') res = format_published_projects() assert len(res) == 1, res res = res[0] assert res['day'].strftime('%Y-%m-%d') == day, res['day'] assert res['id'] == p.id assert res['short_name'] == p.short_name assert res['p_name'] == p.name assert res['email_addr'] == p.owner.email_addr assert res['owner_id'] == p.owner.id assert res['u_name'] == p.owner.name