def upload_message_bank(request, domain): if request.method == "POST": form = MessageBankForm(request.POST, request.FILES) if form.is_valid(): current_bank = get_message_bank(domain) message_id_map = {} for message in current_bank: message_id_map[message.fri_id.upper()] = message # The message bank is supposed to be static, and is intended # to be a one-time upload. So to prevent any issues with # overwriting messages or deleting messages by accident, this # api will only add new messages to the message bank. # If more specialized functionality is needed later on, a new # UI should be built. for message in form.cleaned_data["message_bank_file"]: msg_id = message["msg_id"] text = message["text"] if msg_id.upper() not in message_id_map: msg = FRIMessageBankMessage( domain=domain, risk_profile=msg_id[0].upper(), message=text, fri_id=msg_id, ) msg.save() messages.success(request, _("Message Bank Uploaded.")) else: messages.error(request, form._errors["message_bank_file"].as_text()) else: messages.error(request, _("ERROR: POST Expected.")) return HttpResponseRedirect( reverse(CustomProjectReportDispatcher.name(), args=[domain, MessageBankReport.slug]))
def upload_message_bank(request, domain): if request.method == "POST": form = MessageBankForm(request.POST, request.FILES) if form.is_valid(): current_bank = get_message_bank(domain) message_id_map = {} for message in current_bank: message_id_map[message.fri_id.upper()] = message # The message bank is supposed to be static, and is intended # to be a one-time upload. So to prevent any issues with # overwriting messages or deleting messages by accident, this # api will only add new messages to the message bank. # If more specialized functionality is needed later on, a new # UI should be built. for message in form.cleaned_data["message_bank_file"]: msg_id = message["msg_id"] text = message["text"] if msg_id.upper() not in message_id_map: msg = FRIMessageBankMessage( domain = domain, risk_profile = msg_id[0].upper(), message = text, fri_id = msg_id, ) msg.save() messages.success(request, _("Message Bank Uploaded.")) else: messages.error(request, form._errors["message_bank_file"].as_text()) else: messages.error(request, _("ERROR: POST Expected.")) return HttpResponseRedirect(reverse(CustomProjectReportDispatcher.name(), args=[domain, MessageBankReport.slug]))
def template_context(self): result = { "fri_message_bank_url": reverse(CustomProjectReportDispatcher.name(), args=[self.domain, MessageBankReport.slug]), "fri_chat_actions": [ self._open_chat_action(case._id) for case in self.interactive_participants ], }
def template_context(self): result = { "fri_message_bank_url" : reverse(CustomProjectReportDispatcher.name(), args=[self.domain, MessageBankReport.slug]), "fri_chat_actions" : [self._open_chat_action(case._id) for case in self.interactive_participants], } return result
from corehq.apps.reports.dispatcher import ReportDispatcher, ProjectReportDispatcher, CustomProjectReportDispatcher dodoma_reports = patterns('corehq.apps.reports.dodoma', url('^household_verification_json$', 'household_verification_json'), url('^household_verification/$', 'household_verification'), ) _phonelog_context = { 'report': { 'name': "Device Logs", } } custom_report_urls = patterns('', url(CustomProjectReportDispatcher.pattern(), CustomProjectReportDispatcher.as_view(), name=CustomProjectReportDispatcher.name()) ) phonelog_reports = patterns('', url(r'^$', 'phonelog.views.devices', name="phonelog_devices", kwargs={ 'template': 'reports/phonelog/devicelist.html', 'context': _phonelog_context }), url(r'^(?P<device>[\w\-]+)/$', 'phonelog.views.device_log', name="device_log", kwargs={ 'template': 'reports/phonelog/devicelogs.html', 'context': _phonelog_context }), url(r'^(?P<device>[\w\-]+)/raw/$', 'phonelog.views.device_log_raw', name="device_log_raw", kwargs={ 'template': 'reports/phonelog/devicelogs_raw.html', 'context': _phonelog_context }),