oplus/epm/epm.py
def _dev_populate_from_json_data(self, json_data):
        """
        !! Must only be called once, when empty !!
        """

        # workflow
        # --------
        # (methods belonging to create/update/delete framework:
        #     epm._dev_populate_from_json_data, table.batch_add, record.update, queryset.delete, record.delete)
        # 1. add inert
        #     * data is checked
        #     * old links are unregistered
        #     * record is stored in table (=> pk uniqueness is checked)
        # 2. activate: hooks, links, external files

        # manage comment if any
        comment = json_data.pop("_comment", None)
        if comment is not None:
            self._comment = comment

        # populate external files
        external_files_data = json_data.pop("_external_files", dict())
        self._dev_external_files_manager.populate_from_json_data(external_files_data)

        # manage records
        added_records = []
        for table_ref, json_data_records in json_data.items():
            # find table
            table = getattr(self, table_ref)

            # create record (inert)
            records = table._dev_add_inert(json_data_records)

            # add records (inert)
            added_records.extend(records)

        # activate hooks
        for r in added_records:
            r._dev_activate_hooks()

        # activate links and external files
        for r in added_records:
            r._dev_activate_links()
            r._dev_activate_external_files()
def _dev_populate_from_json_data(self, json_data):
        # workflow
        # --------
        # (methods belonging to create/update/delete framework:
        #     epm._dev_populate_from_json_data, table.batch_add, record.update, queryset.delete, record.delete)
        # 1. add inert
        #     * data is checked
        #     * old links are unregistered
        #     * record is stored in table (=> pk uniqueness is checked)
        # 2. activate: hooks, links, external files

        # manage comment if any
        comment = json_data.pop("_comment", None)
        if comment is not None:
            self._comment = comment

        # populate external files
        external_files_data = json_data.pop("_external_files", dict())
        self._dev_external_files_manager.populate_from_json_data(external_files_data)

        # manage records
        added_records = []
        for table_ref, json_data_records in json_data.items():
            # find table
            table = getattr(self, table_ref)

            # create record (inert)
            records = table._dev_add_inert(json_data_records)

            # add records (inert)
            added_records.extend(records)

        # activate hooks
        for r in added_records:
            r._dev_activate_hooks()

        # activate links and external files
        for r in added_records:
            r._dev_activate_links()
            r._dev_activate_external_files()
def _dev_populate_from_json_data ( self , json_data ) : # workflow # -------- # (methods belonging to create/update/delete framework: #     epm._dev_populate_from_json_data, table.batch_add, record.update, queryset.delete, record.delete) # 1. add inert #     * data is checked #     * old links are unregistered #     * record is stored in table (=> pk uniqueness is checked) # 2. activate: hooks, links, external files # manage comment if any comment = json_data . pop ( "_comment" , None ) if comment is not None : self . _comment = comment # populate external files external_files_data = json_data . pop ( "_external_files" , dict ( ) ) self . _dev_external_files_manager . populate_from_json_data ( external_files_data ) # manage records added_records = [ ] for table_ref , json_data_records in json_data . items ( ) : # find table table = getattr ( self , table_ref ) # create record (inert) records = table . _dev_add_inert ( json_data_records ) # add records (inert) added_records . extend ( records ) # activate hooks for r in added_records : r . _dev_activate_hooks ( ) # activate links and external files for r in added_records : r . _dev_activate_links ( ) r . _dev_activate_external_files ( )
!! Must only be called once, when empty !!
!! Must only be called once when empty !!