本文整理汇总了Python中temba.contacts.models.ContactGroup.create方法的典型用法代码示例。如果您正苦于以下问题:Python ContactGroup.create方法的具体用法?Python ContactGroup.create怎么用?Python ContactGroup.create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类temba.contacts.models.ContactGroup
的用法示例。
在下文中一共展示了ContactGroup.create方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: import_triggers
# 需要导入模块: from temba.contacts.models import ContactGroup [as 别名]
# 或者: from temba.contacts.models.ContactGroup import create [as 别名]
def import_triggers(cls, exported_json, org, user, same_site=False):
"""
Import triggers from our export file
"""
from temba.orgs.models import EARLIEST_IMPORT_VERSION
if exported_json.get('version', 0) < EARLIEST_IMPORT_VERSION:
raise ValueError(_("Unknown version (%s)" % exported_json.get('version', 0)))
# first things first, let's create our groups if necesary and map their ids accordingly
if 'triggers' in exported_json:
for trigger_spec in exported_json['triggers']:
# resolve our groups
groups = []
for group_spec in trigger_spec['groups']:
group = None
if same_site:
group = ContactGroup.user_groups.filter(org=org, pk=group_spec['id']).first()
if not group:
group = ContactGroup.user_groups.filter(org=org, name=group_spec['name']).first()
if not group:
group = ContactGroup.create(org, user, group_spec['name'])
if not group.is_active:
group.is_active = True
group.save()
groups.append(group)
flow = Flow.objects.get(org=org, pk=trigger_spec['flow']['id'])
# see if that trigger already exists
trigger = Trigger.objects.filter(org=org, trigger_type=trigger_spec['trigger_type'])
if trigger_spec['keyword']:
trigger = trigger.filter(keyword__iexact=trigger_spec['keyword'])
if groups:
trigger = trigger.filter(groups__in=groups)
trigger = trigger.first()
channel = trigger_spec.get('channel', None) # older exports won't have a channel
if trigger:
trigger.is_archived = False
trigger.flow = flow
trigger.save()
else:
trigger = Trigger.objects.create(org=org, trigger_type=trigger_spec['trigger_type'],
keyword=trigger_spec['keyword'], flow=flow,
created_by=user, modified_by=user,
channel=channel)
for group in groups:
trigger.groups.add(group)
示例2: create_group
# 需要导入模块: from temba.contacts.models import ContactGroup [as 别名]
# 或者: from temba.contacts.models.ContactGroup import create [as 别名]
def create_group(self, name, contacts=(), query=None):
if contacts and query:
raise ValueError("Can't provide contact list for a dynamic group")
group = ContactGroup.create(self.org, self.user, name, query=query)
if contacts:
group.contacts.add(*contacts)
return group
示例3: clean
# 需要导入模块: from temba.contacts.models import ContactGroup [as 别名]
# 或者: from temba.contacts.models.ContactGroup import create [as 别名]
def clean(self, value):
if value.startswith("[_NEW_]"):
value = value[7:]
# we must get groups for this org only
group = ContactGroup.get_user_group(self.user.get_org(), value)
if not group:
group = ContactGroup.create(self.user.get_org(), self.user, name=value)
return group
return super(RegisterTriggerForm.AddNewGroupChoiceField, self).clean(value)
示例4: _create_groups
# 需要导入模块: from temba.contacts.models import ContactGroup [as 别名]
# 或者: from temba.contacts.models.ContactGroup import create [as 别名]
def _create_groups(self, count, base_names, contacts):
"""
Creates the given number of groups and fills them with contacts
"""
groups = []
num_bases = len(base_names)
for g in range(0, count):
name = '%s %d' % (base_names[g % num_bases], g + 1)
group = ContactGroup.create(self.org, self.user, name)
group.contacts.add(*contacts[(g % num_bases)::num_bases])
groups.append(ContactGroup.user_groups.get(pk=group.pk))
return groups
示例5: create_group
# 需要导入模块: from temba.contacts.models import ContactGroup [as 别名]
# 或者: from temba.contacts.models.ContactGroup import create [as 别名]
def create_group(self, name, contacts):
group = ContactGroup.create(self.org, self.user, name)
group.contacts.add(*contacts)
return group
示例6: import_campaigns
# 需要导入模块: from temba.contacts.models import ContactGroup [as 别名]
# 或者: from temba.contacts.models.ContactGroup import create [as 别名]
def import_campaigns(cls, exported_json, org, user, same_site=False):
"""
Import campaigns from our export file
"""
from temba.orgs.models import EARLIEST_IMPORT_VERSION
if exported_json.get("version", 0) < EARLIEST_IMPORT_VERSION:
raise ValueError(_("Unknown version (%s)" % exported_json.get("version", 0)))
if "campaigns" in exported_json:
for campaign_spec in exported_json["campaigns"]:
name = campaign_spec["name"]
campaign = None
group = None
# first check if we have the objects by id
if same_site:
group = ContactGroup.user_groups.filter(
id=campaign_spec["group"]["id"], org=org, is_active=True
).first()
if group:
group.name = campaign_spec["group"]["name"]
group.save()
campaign = Campaign.objects.filter(org=org, id=campaign_spec["id"]).first()
if campaign:
campaign.name = Campaign.get_unique_name(org, name, ignore=campaign)
campaign.save()
# fall back to lookups by name
if not group:
group = ContactGroup.user_groups.filter(name=campaign_spec["group"]["name"], org=org).first()
if not campaign:
campaign = Campaign.objects.filter(org=org, name=name).first()
# all else fails, create the objects from scratch
if not group:
group = ContactGroup.create(org, user, campaign_spec["group"]["name"])
if not campaign:
campaign_name = Campaign.get_unique_name(org, name)
campaign = Campaign.create(org, user, campaign_name, group)
else:
campaign.group = group
campaign.save()
# we want to nuke old single message flows
for event in campaign.events.all():
if event.flow.flow_type == Flow.MESSAGE:
event.flow.delete()
# and all of the events, we'll recreate these
campaign.events.all().delete()
# fill our campaign with events
for event_spec in campaign_spec["events"]:
relative_to = ContactField.get_or_create(
org, key=event_spec["relative_to"]["key"], label=event_spec["relative_to"]["label"]
)
# create our message flow for message events
if event_spec["event_type"] == MESSAGE_EVENT:
event = CampaignEvent.create_message_event(
org,
user,
campaign,
relative_to,
event_spec["offset"],
event_spec["unit"],
event_spec["message"],
event_spec["delivery_hour"],
)
event.update_flow_name()
else:
flow = Flow.objects.filter(org=org, id=event_spec["flow"]["id"]).first()
if flow:
CampaignEvent.create_flow_event(
org,
user,
campaign,
relative_to,
event_spec["offset"],
event_spec["unit"],
flow,
event_spec["delivery_hour"],
)
# update our scheduled events for this campaign
EventFire.update_campaign_events(campaign)
示例7: save
# 需要导入模块: from temba.contacts.models import ContactGroup [as 别名]
# 或者: from temba.contacts.models.ContactGroup import create [as 别名]
def save(self, obj):
obj.org = self.request.user.get_org()
self.object = ContactGroup.create(obj.org, self.request.user, obj.name)
示例8: import_campaigns
# 需要导入模块: from temba.contacts.models import ContactGroup [as 别名]
# 或者: from temba.contacts.models.ContactGroup import create [as 别名]
def import_campaigns(cls, exported_json, org, user, site=None):
"""
Import campaigns from our export file
"""
from temba.orgs.models import EARLIEST_IMPORT_VERSION
if exported_json.get('version', 0) < EARLIEST_IMPORT_VERSION:
raise ValueError(_("Unknown version (%s)" % exported_json.get('version', 0)))
if 'campaigns' in exported_json:
for campaign_spec in exported_json['campaigns']:
name = campaign_spec['name']
campaign = None
group = None
# first check if we have the objects by id
if site and site == exported_json.get('site', None):
group = ContactGroup.user_groups.filter(id=campaign_spec['group']['id'], org=org, is_active=True).first()
if group:
group.name = campaign_spec['group']['name']
group.save()
campaign = Campaign.objects.filter(org=org, id=campaign_spec['id']).first()
if campaign:
campaign.name = Campaign.get_unique_name(name, org, ignore=campaign)
campaign.save()
# fall back to lookups by name
if not group:
group = ContactGroup.user_groups.filter(name=campaign_spec['group']['name'], org=org).first()
if not campaign:
campaign = Campaign.objects.filter(org=org, name=name).first()
# all else fails, create the objects from scratch
if not group:
group = ContactGroup.create(org, user, campaign_spec['group']['name'])
if not campaign:
campaign = Campaign.objects.create(name=Campaign.get_unique_name(name, org), org=org, group=group, created_by=user, modified_by=user)
else:
campaign.group = group
campaign.save()
# we want to nuke old single message flows
for event in campaign.events.all():
if event.flow.flow_type == Flow.MESSAGE:
event.flow.delete()
# and all of the events, we'll recreate these
campaign.events.all().delete()
# fill our campaign with events
for event_spec in campaign_spec['events']:
relative_to = ContactField.get_or_create(org,
key=event_spec['relative_to']['key'],
label=event_spec['relative_to']['label'])
# create our message flow for message events
if event_spec['event_type'] == MESSAGE_EVENT:
flow = Flow.create_single_message(org, user, event_spec['message'])
else:
flow = Flow.objects.filter(org=org, id=event_spec['flow']['id']).first()
if flow:
event = campaign.events.create(created_by=user,
modified_by=user,
offset=event_spec['offset'],
unit=event_spec['unit'],
event_type=event_spec['event_type'],
delivery_hour=event_spec['delivery_hour'],
message=event_spec['message'],
flow=flow,
relative_to=relative_to)
event.update_flow_name()
# update our scheduled events for this campaign
EventFire.update_campaign_events(campaign)