本文整理汇总了Python中temba.contacts.models.ContactField.hide_field方法的典型用法代码示例。如果您正苦于以下问题:Python ContactField.hide_field方法的具体用法?Python ContactField.hide_field怎么用?Python ContactField.hide_field使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类temba.contacts.models.ContactField
的用法示例。
在下文中一共展示了ContactField.hide_field方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: form_valid
# 需要导入模块: from temba.contacts.models import ContactField [as 别名]
# 或者: from temba.contacts.models.ContactField import hide_field [as 别名]
def form_valid(self, form):
try:
cleaned_data = form.cleaned_data
org = self.request.user.get_org()
for key in cleaned_data:
if key.startswith('field_'):
idx = key[6:]
label = cleaned_data["label_%s" % idx]
field = cleaned_data[key]
show_in_table = cleaned_data["show_%s" % idx]
value_type = cleaned_data['type_%s' % idx]
if field == '__new_field':
if label:
analytics.track(self.request.user.username, 'temba.contactfield_created')
key = ContactField.make_key(label)
ContactField.get_or_create(org, key, label, show_in_table=show_in_table, value_type=value_type)
else:
if label:
ContactField.get_or_create(org, field.key, label, show_in_table=show_in_table, value_type=value_type)
else:
ContactField.hide_field(org, field.key)
if 'HTTP_X_PJAX' not in self.request.META:
return HttpResponseRedirect(self.get_success_url())
else: # pragma: no cover
return self.render_to_response(self.get_context_data(form=form,
success_url=self.get_success_url(),
success_script=getattr(self, 'success_script', None)))
except IntegrityError as e: # pragma: no cover
message = str(e).capitalize()
errors = self.form._errors.setdefault(forms.forms.NON_FIELD_ERRORS, forms.utils.ErrorList())
errors.append(message)
return self.render_to_response(self.get_context_data(form=form))
示例2: test_scheduling
# 需要导入模块: from temba.contacts.models import ContactField [as 别名]
# 或者: from temba.contacts.models.ContactField import hide_field [as 别名]
#.........这里部分代码省略.........
# should have one event now
fire = EventFire.objects.get()
self.assertEquals(5, fire.scheduled.day)
self.assertEquals(10, fire.scheduled.month)
self.assertEquals(2020, fire.scheduled.year)
# account for timezone difference, our org is in UTC+2
self.assertEquals(17 - 2, fire.scheduled.hour)
self.assertEquals(self.farmer1, fire.contact)
self.assertEquals(planting_reminder, fire.event)
self.assertIsNone(fire.fired)
# change the date of our date
self.farmer1.set_field('planting_date', "06-10-2020 12:30:10")
EventFire.update_campaign_events_for_contact(campaign, self.farmer1)
fire = EventFire.objects.get()
self.assertEquals(6, fire.scheduled.day)
self.assertEquals(10, fire.scheduled.month)
self.assertEquals(2020, fire.scheduled.year)
self.assertEquals(self.farmer1, fire.contact)
self.assertEquals(planting_reminder, fire.event)
# set it to something invalid
self.farmer1.set_field('planting_date', "what?")
EventFire.update_campaign_events_for_contact(campaign, self.farmer1)
self.assertFalse(EventFire.objects.all())
# now something valid again
self.farmer1.set_field('planting_date', "07-10-2020 12:30:10")
EventFire.update_campaign_events_for_contact(campaign, self.farmer1)
fire = EventFire.objects.get()
self.assertEquals(7, fire.scheduled.day)
self.assertEquals(10, fire.scheduled.month)
self.assertEquals(2020, fire.scheduled.year)
self.assertEquals(self.farmer1, fire.contact)
self.assertEquals(planting_reminder, fire.event)
# create another reminder
planting_reminder2 = CampaignEvent.objects.create(campaign=campaign, relative_to=self.planting_date, offset=1,
flow=self.reminder2_flow,
created_by=self.admin, modified_by=self.admin)
self.assertEquals(1, planting_reminder2.abs_offset())
# update the campaign
EventFire.update_campaign_events(campaign)
# should have two events now, ordered by date
events = EventFire.objects.all()
self.assertEquals(planting_reminder, events[0].event)
self.assertEquals(7, events[0].scheduled.day)
self.assertEquals(planting_reminder2, events[1].event)
self.assertEquals(8, events[1].scheduled.day)
# mark one of the events as inactive
planting_reminder2.is_active = False
planting_reminder2.save()
# update the campaign
EventFire.update_campaign_events(campaign)
# back to only one event
event = EventFire.objects.get()
self.assertEquals(planting_reminder, event.event)
self.assertEquals(7, event.scheduled.day)
# update our date
self.farmer1.set_field('planting_date', '09-10-2020 12:30')
# should have updated
event = EventFire.objects.get()
self.assertEquals(planting_reminder, event.event)
self.assertEquals(9, event.scheduled.day)
# let's remove our contact field
ContactField.hide_field(self.org, 'planting_date')
# shouldn't have anything scheduled
self.assertFalse(EventFire.objects.all())
# add it back in
ContactField.get_or_create(self.org, 'planting_date', "planting Date")
# should be back!
event = EventFire.objects.get()
self.assertEquals(planting_reminder, event.event)
self.assertEquals(9, event.scheduled.day)
# try firing the event
event.fire()
# should have one flow run now
run = FlowRun.objects.get()
self.assertEquals(event.contact, run.contact)