def report(): if g.no_anonymous_reporting and g.user.is_anonymous: return Response( json.dumps( [{"msg": "Not logged in or unsufficient privileges."}], indent=4 if c3bottles.debug else None ), mimetype="application/json", status=401 ) number = request.values.get("number") try: Report( dp=DropPoint.get(number), state=request.values.get("state") ) except ValueError as e: return Response( json.dumps(e.args, indent=4 if c3bottles.debug else None), mimetype="application/json", status=400 ) else: db.session.commit() return Response( DropPoint.get_dp_json(number), mimetype="application/json" )
def report(number=None): if number: dp = DropPoint.get(number) else: dp = DropPoint.get(request.values.get("number")) if not dp or dp.removed: return render_template( "error.html", heading="Error!", text="Drop point not found.", ) state = request.values.get("state") if state: if g.no_anonymous_reporting and g.user.is_anonymous: abort(401) from model.report import Report try: Report(dp=dp, state=state) except ValueError as e: return render_template( "error.html", text="Errors occurred while processing your report:", errors=[v for d in e.args for v in d.values()]) else: db.session.commit() return render_template( "success.html", heading="Thank you!", text="Your report has been received successfully.") else: return render_template("report.html", dp=dp)
def generate_report(self): report = Report() projects = self.projects_finder.find_all() if len(projects) == 0: report.message = NO_PROJECTS_FOUND_MESSAGE else: for project in projects: project_report = self._generate_report_for_project(project) if self._any_outdated_requirement(project_report): report.add_project_report(project_report) return report
def test_construction_exceptions(self): states = Report.states dp = DropPoint(1, lat=0, lng=0, level=1) with self.assertRaisesRegexp(ValueError, "drop point"): Report(None) with self.assertRaisesRegexp(ValueError, "state"): Report(dp) time_in_future = datetime.today() + timedelta(hours=1) with self.assertRaisesRegexp(ValueError, "future"): Report(dp, time=time_in_future, state=states[0]) with self.assertRaisesRegexp(ValueError, "not a datetime"): Report(dp, time="foo", state=states[0]) with self.assertRaisesRegexp(ValueError, "state"): Report(dp, state="whatever")
def get_meeting_report(): cc = CalendarConnection() meetings = cc.meetings # _print_calendar_results_as_json(meetings) rep = Report(meetings) data = rep.printable_data rep.write_report_html(data) # ihm_slack.post_report_to_slack(*data) # meetings_list = rep.meetings_list ihm_db._add_row_to_db(meetings_list) ihm_db.write_db_to_csv() ihm_db.write_csv_to_json() generate_charts(data) open_charts_in_browser()
def test_reporting(self): states = Report.states dp = DropPoint(1, lat=0, lng=0, level=1) first_time = datetime.today() first_state = states[0] first_report = Report(dp, state=first_state, time=first_time) db.session.commit() self.assertEqual(first_report.time, first_time, "Report creation time not as expected.") self.assertEqual(first_report.state, first_state, "Report state not as expected.") self.assertEqual( dp.reports[0], first_report, "First report not first report of associated drop point.") self.assertEqual(dp.get_last_report(), first_report, "get_last_report() did not return first report.") self.assertEqual(dp.get_last_state(), first_state, "get_last_state() did not return state.") self.assertEqual(dp.get_total_report_count(), 1, "get_total_report_count() not as expected.") self.assertEqual(dp.get_new_report_count(), 1, "get_new_report_count() not as expected.") self.assertEqual( dp.get_new_reports()[0], first_report, "First element returned by get_new_reports() not the report wanted." ) second_time = datetime.today() second_state = states[-1] second_report = Report(dp, state=second_state, time=second_time) db.session.commit() self.assertEqual(second_report.state, second_state, "Report state not as expected.") self.assertEqual( dp.reports[-1], second_report, "Second report not last report of associated drop point.") self.assertEqual(dp.get_last_report(), second_report, "get_last_report() did not return second report.") self.assertEqual(dp.get_last_state(), second_state, "get_last_state() did not return second state.") self.assertEqual(dp.get_total_report_count(), 2, "get_total_report_count() not as expected.") self.assertEqual(dp.get_new_report_count(), 2, "get_new_report_count() not as expected.") self.assertEqual( dp.get_new_reports()[0], second_report, "First element returned by get_new_reports() not the report wanted." )
def test_construction(self): actions = Visit.actions dp = DropPoint(1, lat=0, lng=0, level=1) first_time = datetime.today() first_action = actions[1] first_visit = Visit(dp, action=first_action, time=first_time) db.session.commit() self.assertEqual( first_visit.time, first_time, "Visit creation time not as expected." ) self.assertEqual( first_visit.action, first_action, "Visit action not as expected." ) self.assertEqual( dp.visits[0], first_visit, "First visit not first visit of associated drop point." ) self.assertEqual( dp.get_last_visit(), first_visit, "get_last_visit() did not return first visit." ) report_time = datetime.today() report_state = Report.states[0] report = Report(dp, state=report_state, time=report_time) second_time = datetime.today() second_action = actions[0] second_visit = Visit(dp, action=second_action, time=second_time) db.session.commit() self.assertEqual( second_visit.action, second_action, "Visit action not as expected." ) self.assertEqual( dp.visits[-1], second_visit, "Second visit not last visit of associated drop point." ) self.assertEqual( dp.get_last_visit(), second_visit, "get_last_visit() did not return second visit." ) self.assertNotEqual( dp.get_last_state(), report_state, "get_last_state() returns unchanged state after visit." ) self.assertEqual( dp.get_new_report_count(), 0, "get_new_report_count() nonzero after visit." ) self.assertFalse( dp.get_new_reports(), "get_new_reports() returned something not False after visit." ) self.assertEqual( dp.get_last_report(), report, "get_last_report() did not return report after visit." ) self.assertEqual( dp.get_total_report_count(), 1, "get_total_report_count() not as expected after visit." )
def read(): data = DataAccess.fetch_all('select * from report', []) return jsonify([Report(*a) for a in data])
def report(self, state=None, time=None): Report(self, time=time, state=state)