Example #1
0
 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)
Example #2
0
 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)
Example #3
0
    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
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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
Example #8
0
    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)
Example #9
0
 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))
Example #11
0
    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))
Example #13
0
 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)