本文整理汇总了Python中corehq.apps.reminders.models.CaseReminderHandler.nickname方法的典型用法代码示例。如果您正苦于以下问题:Python CaseReminderHandler.nickname方法的具体用法?Python CaseReminderHandler.nickname怎么用?Python CaseReminderHandler.nickname使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类corehq.apps.reminders.models.CaseReminderHandler
的用法示例。
在下文中一共展示了CaseReminderHandler.nickname方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: add_survey
# 需要导入模块: from corehq.apps.reminders.models import CaseReminderHandler [as 别名]
# 或者: from corehq.apps.reminders.models.CaseReminderHandler import nickname [as 别名]
def add_survey(request, domain, survey_id=None):
survey = None
if survey_id is not None:
survey = Survey.get(survey_id)
if request.method == "POST":
form = SurveyForm(request.POST)
if form.is_valid():
name = form.cleaned_data.get("name")
waves = form.cleaned_data.get("waves")
followups = form.cleaned_data.get("followups")
samples = form.cleaned_data.get("samples")
send_automatically = form.cleaned_data.get("send_automatically")
send_followup = form.cleaned_data.get("send_followup")
sample_data = {}
for sample in samples:
sample_data[sample["sample_id"]] = sample
if send_followup:
timeout_intervals = [int(followup["interval"]) * 1440 for followup in followups]
else:
timeout_intervals = []
timeout_duration = sum(timeout_intervals) / 1440
final_timeout = lambda wave : [((wave.end_date - wave.date).days - timeout_duration) * 1440]
if survey is None:
wave_list = []
for wave in waves:
wave_list.append(SurveyWave(
date=parse(wave["date"]).date(),
time=parse(wave["time"]).time(),
end_date=parse(wave["end_date"]).date(),
form_id=wave["form_id"],
reminder_definitions={},
delegation_tasks={},
))
if send_automatically:
for wave in wave_list:
for sample in samples:
if sample["method"] == "SMS":
handler = CaseReminderHandler(
domain = domain,
nickname = "Survey '%s'" % name,
default_lang = "en",
method = "survey",
recipient = RECIPIENT_SURVEY_SAMPLE,
start_condition_type = ON_DATETIME,
start_datetime = datetime.combine(wave.date, time(0,0)),
start_offset = 0,
events = [CaseReminderEvent(
day_num = 0,
fire_time = wave.time,
form_unique_id = wave.form_id,
callback_timeout_intervals = timeout_intervals + final_timeout(wave),
)],
schedule_length = 1,
event_interpretation = EVENT_AS_SCHEDULE,
max_iteration_count = 1,
sample_id = sample["sample_id"],
survey_incentive = sample["incentive"],
submit_partial_forms = True,
)
handler.save()
wave.reminder_definitions[sample["sample_id"]] = handler._id
survey = Survey (
domain = domain,
name = name,
waves = wave_list,
followups = followups,
samples = samples,
send_automatically = send_automatically,
send_followup = send_followup
)
else:
current_waves = survey.waves
survey.waves = []
unchanged_wave_json = []
# Keep any waves that didn't change in case the surveys are in progress
for wave in current_waves:
for wave_json in waves:
parsed_date = parse(wave_json["date"]).date()
parsed_time = parse(wave_json["time"]).time()
if parsed_date == wave.date and parsed_time == wave.time and wave_json["form_id"] == wave.form_id:
wave.end_date = parse(wave_json["end_date"]).date()
survey.waves.append(wave)
unchanged_wave_json.append(wave_json)
continue
for wave in survey.waves:
current_waves.remove(wave)
for wave_json in unchanged_wave_json:
waves.remove(wave_json)
#.........这里部分代码省略.........
示例2: add_complex_reminder_schedule
# 需要导入模块: from corehq.apps.reminders.models import CaseReminderHandler [as 别名]
# 或者: from corehq.apps.reminders.models.CaseReminderHandler import nickname [as 别名]
def add_complex_reminder_schedule(request, domain, handler_id=None):
if handler_id:
h = CaseReminderHandler.get(handler_id)
if h.doc_type != 'CaseReminderHandler' or h.domain != domain:
raise Http404
else:
h = None
form_list = get_form_list(domain)
if request.method == "POST":
form = ComplexCaseReminderForm(request.POST)
if form.is_valid():
if h is None:
h = CaseReminderHandler(domain=domain)
h.ui_type = UI_COMPLEX
h.case_type = form.cleaned_data["case_type"]
h.nickname = form.cleaned_data["nickname"]
h.default_lang = form.cleaned_data["default_lang"]
h.method = form.cleaned_data["method"]
h.recipient = form.cleaned_data["recipient"]
h.start_property = form.cleaned_data["start_property"]
h.start_value = form.cleaned_data["start_value"]
h.start_date = form.cleaned_data["start_date"]
h.start_offset = form.cleaned_data["start_offset"]
h.start_match_type = form.cleaned_data["start_match_type"]
h.schedule_length = form.cleaned_data["schedule_length"]
h.event_interpretation = form.cleaned_data["event_interpretation"]
h.max_iteration_count = form.cleaned_data["max_iteration_count"]
h.until = form.cleaned_data["until"]
h.events = form.cleaned_data["events"]
h.save()
return HttpResponseRedirect(reverse('list_reminders', args=[domain]))
else:
if h is not None:
initial = {
"case_type" : h.case_type
,"nickname" : h.nickname
,"default_lang" : h.default_lang
,"method" : h.method
,"recipient" : h.recipient
,"start_property" : h.start_property
,"start_value" : h.start_value
,"start_date" : h.start_date
,"start_match_type" : h.start_match_type
,"start_offset" : h.start_offset
,"schedule_length" : h.schedule_length
,"event_interpretation" : h.event_interpretation
,"max_iteration_count" : h.max_iteration_count
,"until" : h.until
,"events" : h.events
}
else:
initial = {}
form = ComplexCaseReminderForm(initial=initial)
return render_to_response(request, "reminders/partial/add_complex_reminder.html", {
"domain": domain
,"form": form
,"form_list": form_list
})
示例3: add_complex_reminder_schedule
# 需要导入模块: from corehq.apps.reminders.models import CaseReminderHandler [as 别名]
# 或者: from corehq.apps.reminders.models.CaseReminderHandler import nickname [as 别名]
def add_complex_reminder_schedule(request, domain, handler_id=None):
if handler_id:
h = CaseReminderHandler.get(handler_id)
if h.doc_type != 'CaseReminderHandler' or h.domain != domain:
raise Http404
else:
h = None
form_list = get_form_list(domain)
sample_list = get_sample_list(domain)
if request.method == "POST":
form = ComplexCaseReminderForm(request.POST)
if form.is_valid():
if h is None:
h = CaseReminderHandler(domain=domain)
h.ui_type = UI_COMPLEX
else:
if h.start_condition_type != form.cleaned_data["start_condition_type"]:
for reminder in h.get_reminders():
reminder.retire()
h.active = form.cleaned_data["active"]
h.case_type = form.cleaned_data["case_type"]
h.nickname = form.cleaned_data["nickname"]
h.default_lang = form.cleaned_data["default_lang"]
h.method = form.cleaned_data["method"]
h.recipient = form.cleaned_data["recipient"]
h.start_property = form.cleaned_data["start_property"]
h.start_value = form.cleaned_data["start_value"]
h.start_date = form.cleaned_data["start_date"]
h.start_offset = form.cleaned_data["start_offset"]
h.start_match_type = form.cleaned_data["start_match_type"]
h.schedule_length = form.cleaned_data["schedule_length"]
h.event_interpretation = form.cleaned_data["event_interpretation"]
h.max_iteration_count = form.cleaned_data["max_iteration_count"]
h.until = form.cleaned_data["until"]
h.events = form.cleaned_data["events"]
h.submit_partial_forms = form.cleaned_data["submit_partial_forms"]
h.include_case_side_effects = form.cleaned_data["include_case_side_effects"]
h.ui_frequency = form.cleaned_data["frequency"]
h.start_condition_type = form.cleaned_data["start_condition_type"]
h.max_question_retries = form.cleaned_data["max_question_retries"]
if form.cleaned_data["start_condition_type"] == "ON_DATETIME":
dt = parse(form.cleaned_data["start_datetime_date"]).date()
tm = parse(form.cleaned_data["start_datetime_time"]).time()
h.start_datetime = datetime.combine(dt, tm)
else:
h.start_datetime = None
h.sample_id = form.cleaned_data["sample_id"]
h.save()
return HttpResponseRedirect(reverse('list_reminders', args=[domain]))
else:
if h is not None:
initial = {
"active" : h.active,
"case_type" : h.case_type,
"nickname" : h.nickname,
"default_lang" : h.default_lang,
"method" : h.method,
"recipient" : h.recipient,
"start_property" : h.start_property,
"start_value" : h.start_value,
"start_date" : h.start_date,
"start_match_type" : h.start_match_type,
"start_offset" : h.start_offset,
"schedule_length" : h.schedule_length,
"event_interpretation" : h.event_interpretation,
"max_iteration_count" : h.max_iteration_count,
"until" : h.until,
"events" : h.events,
"submit_partial_forms" : h.submit_partial_forms,
"include_case_side_effects" : h.include_case_side_effects,
"start_condition_type" : h.start_condition_type,
"start_datetime_date" : str(h.start_datetime.date()) if isinstance(h.start_datetime, datetime) else None,
"start_datetime_time" : str(h.start_datetime.time()) if isinstance(h.start_datetime, datetime) else None,
"frequency" : h.ui_frequency,
"sample_id" : h.sample_id,
"use_until" : "Y" if h.until is not None else "N",
"max_question_retries" : h.max_question_retries,
}
else:
initial = {
"events" : [CaseReminderEvent(day_num=0, fire_time=time(0,0), message={"":""}, callback_timeout_intervals=[], form_unique_id=None)],
"use_until" : "N",
"max_question_retries" : QUESTION_RETRY_CHOICES[-1],
"active" : True,
}
form = ComplexCaseReminderForm(initial=initial)
return render(request, "reminders/partial/add_complex_reminder.html", {
"domain": domain,
"form": form,
"form_list": form_list,
"handler_id": handler_id,
"sample_list": sample_list,
})