Beispiel #1
0
    def create_org(self, spec, superuser, country, locations):
        self._log(f"\nCreating org {spec['name']}...\n")

        org = Org.objects.create(
            uuid=spec["uuid"],
            name=spec["name"],
            timezone=pytz.timezone("America/Los_Angeles"),
            brand="rapidpro.io",
            country=country,
            created_on=timezone.now(),
            created_by=superuser,
            modified_by=superuser,
        )
        ContactGroup.create_system_groups(org)
        ContactField.create_system_fields(org)
        org.init_topups(100_000)

        # set our sequences to make ids stable across orgs
        with connection.cursor() as cursor:
            for seq_name in RESET_SEQUENCES:
                cursor.execute(
                    f"ALTER SEQUENCE {seq_name} RESTART WITH {spec['sequence_start']}"
                )

        self.create_users(spec, org)
        self.create_channels(spec, org, superuser)
        self.create_fields(spec, org, superuser)
        self.create_globals(spec, org, superuser)
        self.create_labels(spec, org, superuser)
        self.create_groups(spec, org, superuser)
        self.create_flows(spec, org, superuser)
        self.create_contacts(spec, org, superuser)
        self.create_group_contacts(spec, org, superuser)
        self.create_campaigns(spec, org, superuser)
        self.create_templates(spec, org, superuser)
        self.create_classifiers(spec, org, superuser)
        self.create_ticketers(spec, org, superuser)

        return org
Beispiel #2
0
    def create_org(self, spec, superuser, country, locations):
        self._log(f"\nCreating org {spec['name']}...\n")

        org = Org.objects.create(
            uuid=spec["uuid"],
            name=spec["name"],
            timezone=pytz.timezone("America/Los_Angeles"),
            brand="rapidpro.io",
            country=country,
            created_on=timezone.now(),
            created_by=superuser,
            modified_by=superuser,
        )
        ContactGroup.create_system_groups(org)
        ContactField.create_system_fields(org)
        org.create_welcome_topup(100_000)

        # set our sequences to make ids stable across orgs
        with connection.cursor() as cursor:
            cursor.execute(
                "ALTER SEQUENCE contacts_contact_id_seq RESTART WITH %s",
                [spec["sequence_start"]])
            cursor.execute(
                "ALTER SEQUENCE contacts_contacturn_id_seq RESTART WITH %s",
                [spec["sequence_start"]])
            cursor.execute(
                "ALTER SEQUENCE contacts_contactgroup_id_seq RESTART WITH %s",
                [spec["sequence_start"]])
            cursor.execute("ALTER SEQUENCE flows_flow_id_seq RESTART WITH %s",
                           [spec["sequence_start"]])
            cursor.execute(
                "ALTER SEQUENCE channels_channel_id_seq RESTART WITH %s",
                [spec["sequence_start"]])
            cursor.execute(
                "ALTER SEQUENCE campaigns_campaign_id_seq RESTART WITH %s",
                [spec["sequence_start"]])
            cursor.execute(
                "ALTER SEQUENCE campaigns_campaignevent_id_seq RESTART WITH %s",
                [spec["sequence_start"]])
            cursor.execute("ALTER SEQUENCE msgs_label_id_seq RESTART WITH %s",
                           [spec["sequence_start"]])
            cursor.execute(
                "ALTER SEQUENCE templates_template_id_seq RESTART WITH %s",
                [spec["sequence_start"]])
            cursor.execute(
                "ALTER SEQUENCE templates_templatetranslation_id_seq RESTART WITH %s",
                [spec["sequence_start"]])

        self.create_channels(spec, org, superuser)
        self.create_fields(spec, org, superuser)
        self.create_globals(spec, org, superuser)
        self.create_labels(spec, org, superuser)
        self.create_groups(spec, org, superuser)
        self.create_flows(spec, org, superuser)
        self.create_contacts(spec, org, superuser)
        self.create_group_contacts(spec, org, superuser)
        self.create_campaigns(spec, org, superuser)
        self.create_templates(spec, org, superuser)
        self.create_classifiers(spec, org, superuser)
        self.create_ticketers(spec, org, superuser)

        return org