def merge_versions_json(self):
        # Merge the reduced JSON representations:
        merge_popit_people(
            get_person_as_version_data(self.dest_person),
            get_person_as_version_data(self.source_person),
        )

        # Make sure the secondary person's version history is appended, so it
        # isn't lost.
        dest_person_versions = json.loads(self.dest_person.versions)
        dest_person_versions += json.loads(self.source_person.versions)
        self.dest_person.versions = json.dumps(dest_person_versions)
Example #2
0
    def record_version(self, change_metadata, new_person=False):
        # Needed because of a circular import
        from candidates.models.versions import get_person_as_version_data

        versions = []
        if self.versions:
            versions = json.loads(self.versions)
        new_version = change_metadata.copy()
        new_version["data"] = get_person_as_version_data(self,
                                                         new_person=new_person)
        should_insert = True

        if versions and new_version["data"] == versions[0]["data"]:
            # Don't create empty versions
            should_insert = False

        if new_version["information_source"].startswith(
                "After merging person"):
            # Always create a version if this is a merge
            should_insert = True

        if should_insert:
            versions.insert(0, new_version)

        self.versions = json.dumps(versions)
Example #3
0
    def record_version(self, change_metadata, new_person=False):
        # Needed because of a circular import
        from candidates.models.versions import get_person_as_version_data

        versions = []
        if self.versions:
            versions = json.loads(self.versions)
        new_version = change_metadata.copy()
        new_version["data"] = get_person_as_version_data(self,
                                                         new_person=new_person)
        versions.insert(0, new_version)
        self.versions = json.dumps(versions)