def submission_or_completion_time(self): time = iso_string_to_datetime(safe_index(self.form, self.report.time_field.split('.'))) if self.report.by_submission_time: user_time = ServerTime(time).user_time(self.report.timezone) else: user_time = PhoneTime(time, self.report.timezone).user_time(self.report.timezone) return user_time.ui_string(USER_DATETIME_FORMAT_WITH_SEC)
def submission_or_completion_time(self): time = iso_string_to_datetime(safe_index(self.form, self.report.time_field.split('.'))) if self.report.by_submission_time: user_time = ServerTime(time).user_time(self.report.timezone) else: user_time = PhoneTime(time, self.report.timezone).user_time(self.report.timezone) return user_time.ui_string(USER_DATETIME_FORMAT_WITH_SEC)
def rows(self): def form_data_link(instance_id): return "<a class='ajax_dialog' target='_new' href='%(url)s'>%(text)s</a>" % { "url": absolute_reverse('render_form_data', args=[self.domain, instance_id]), "text": _("View Form") } submissions = [ res['_source'] for res in self.es_results.get('hits', {}).get('hits', []) ] for form in submissions: uid = form["form"]["meta"]["userID"] username = form["form"]["meta"].get("username") try: if username not in ['demo_user', 'admin']: full_name = get_cached_property(CouchUser, uid, 'full_name', expiry=7 * 24 * 60 * 60) name = '"%s"' % full_name if full_name else "" else: name = "" except (ResourceNotFound, IncompatibleDocument): name = "<b>[unregistered]</b>" time = iso_string_to_datetime( safe_index(form, self.time_field.split('.'))) if self.by_submission_time: user_time = ServerTime(time).user_time(self.timezone) else: user_time = PhoneTime(time, self.timezone).user_time(self.timezone) init_cells = [ form_data_link(form["_id"]), (username or _('No data for username')) + (" %s" % name if name else ""), user_time.ui_string(USER_DATETIME_FORMAT_WITH_SEC), xmlns_to_name(self.domain, form.get("xmlns"), app_id=form.get("app_id")), ] def cell(field): return form["form"].get(field) init_cells.extend([cell(field) for field in self.other_fields]) yield init_cells
def broadcast_form(self): if self.request.method == 'POST': return self.form_class(self.request.POST, **self.form_kwargs) broadcast = self.broadcast start_user_time = ServerTime(broadcast.start_datetime).user_time(self.project_timezone) initial = { 'timing': SEND_LATER, 'date': start_user_time.ui_string('%Y-%m-%d'), 'time': start_user_time.ui_string('%H:%M'), 'recipient_type': broadcast.recipient, 'case_group_id': broadcast.sample_id, 'user_group_id': broadcast.user_group_id, 'content_type': broadcast.method, 'message': broadcast.events[0].message.get(broadcast.default_lang, None), 'subject': broadcast.events[0].subject.get(broadcast.default_lang, None), 'form_unique_id': broadcast.events[0].form_unique_id, 'location_ids': ','.join(broadcast.location_ids), 'include_child_locations': broadcast.include_child_locations, } if toggles.EWS_BROADCAST_BY_ROLE.enabled(self.domain): initial['role'] = broadcast.user_data_filter.get('role', [None])[0] return self.form_class(initial=initial, **self.form_kwargs)
def broadcast_form(self): if self.request.method == 'POST': return self.form_class(self.request.POST, **self.form_kwargs) broadcast = self.broadcast start_user_time = ServerTime(broadcast.start_datetime).user_time(self.project_timezone) initial = { 'timing': SEND_LATER, 'date': start_user_time.ui_string('%Y-%m-%d'), 'time': start_user_time.ui_string('%H:%M'), 'recipient_type': broadcast.recipient, 'case_group_id': broadcast.sample_id, 'user_group_id': broadcast.user_group_id, 'content_type': broadcast.method, 'message': broadcast.events[0].message.get(broadcast.default_lang, None), 'subject': broadcast.events[0].subject.get(broadcast.default_lang, None), 'form_unique_id': broadcast.events[0].form_unique_id, 'location_ids': ','.join(broadcast.location_ids), 'include_child_locations': broadcast.include_child_locations, } if toggles.EWS_BROADCAST_BY_ROLE.enabled(self.domain): initial['role'] = broadcast.user_data_filter.get('role', [None])[0] return self.form_class(initial=initial, **self.form_kwargs)
def broadcast_form(self): if self.request.method == "POST": return self.form_class(self.request.POST, **self.form_kwargs) broadcast = self.broadcast start_user_time = ServerTime(broadcast.start_datetime).user_time(self.project_timezone) initial = { "timing": SEND_LATER, "date": start_user_time.ui_string("%Y-%m-%d"), "time": start_user_time.ui_string("%H:%M"), "recipient_type": broadcast.recipient, "case_group_id": broadcast.sample_id, "user_group_id": broadcast.user_group_id, "content_type": broadcast.method, "message": broadcast.events[0].message.get(broadcast.default_lang, None), "subject": broadcast.events[0].subject.get(broadcast.default_lang, None), "form_unique_id": broadcast.events[0].form_unique_id, "location_ids": ",".join(broadcast.location_ids), "include_child_locations": broadcast.include_child_locations, } if toggles.EWS_BROADCAST_BY_ROLE.enabled(self.domain): initial["role"] = broadcast.user_data_filter.get("role", [None])[0] return self.form_class(initial=initial, **self.form_kwargs)
def rows(self): def form_data_link(instance_id): return "<a class='ajax_dialog' target='_new' href='%(url)s'>%(text)s</a>" % { "url": absolute_reverse('render_form_data', args=[self.domain, instance_id]), "text": _("View Form") } submissions = [res['_source'] for res in self.es_results.get('hits', {}).get('hits', [])] for form in submissions: uid = form["form"]["meta"]["userID"] username = form["form"]["meta"].get("username") try: if username not in ['demo_user', 'admin']: full_name = get_cached_property(CouchUser, uid, 'full_name', expiry=7*24*60*60) name = '"%s"' % full_name if full_name else "" else: name = "" except (ResourceNotFound, IncompatibleDocument): name = "<b>[unregistered]</b>" time = iso_string_to_datetime(safe_index(form, self.time_field.split('.'))) if self.by_submission_time: user_time = ServerTime(time).user_time(self.timezone) else: user_time = PhoneTime(time, self.timezone).user_time(self.timezone) init_cells = [ form_data_link(form["_id"]), (username or _('No data for username')) + (" %s" % name if name else ""), user_time.ui_string(USER_DATETIME_FORMAT_WITH_SEC), xmlns_to_name(self.domain, form.get("xmlns"), app_id=form.get("app_id")), ] def cell(field): return form["form"].get(field) init_cells.extend([cell(field) for field in self.other_fields]) yield init_cells
def _format_time(self, time): if not time: return '' user_time = ServerTime(time).user_time(self.project_timezone) return user_time.ui_string(SERVER_DATETIME_FORMAT)
def format_broadcast_name(self, broadcast): user_time = ServerTime(broadcast.start_datetime).user_time( self.project_timezone) return user_time.ui_string(SERVER_DATETIME_FORMAT)
def test_ui_string(self): now = datetime.datetime.utcnow() user_time = ServerTime(now).user_time(pytz.FixedOffset(-4 * 60)) self.assertEqual(user_time.ui_string(), user_time.done().strftime(USER_DATETIME_FORMAT))
def _format_time(self, time): if not time: return '' user_time = ServerTime(time).user_time(self.project_timezone) return user_time.ui_string(SERVER_DATETIME_FORMAT)
def test_ui_string(self): now = datetime.datetime.utcnow() user_time = ServerTime(now).user_time(pytz.FixedOffset(-4 * 60)) self.assertEqual(user_time.ui_string(), user_time.done().strftime(USER_DATETIME_FORMAT))
def format_broadcast_name(self, broadcast): user_time = ServerTime(broadcast.start_datetime).user_time(self.project_timezone) return user_time.ui_string(SERVER_DATETIME_FORMAT)