Beispiel #1
0
 def commit_dirtiness_flags(self):
     """
     Updates any dirtiness flags in the database.
     """
     if self.track_cleanliness and self.domain:
         flags_to_save = self.get_flags_to_save()
         if should_create_flags_on_submission(self.domain):
             assert settings.UNIT_TESTING  # this is currently only true when unit testing
             all_touched_ids = set(flags_to_save.keys()) | self.get_clean_owner_ids()
             to_update = {f.owner_id: f for f in OwnershipCleanlinessFlag.objects.filter(
                 domain=self.domain,
                 owner_id__in=list(all_touched_ids),
             )}
             for owner_id in all_touched_ids:
                 if owner_id not in to_update:
                     # making from scratch - default to clean, but set to dirty if needed
                     flag = OwnershipCleanlinessFlag(domain=self.domain, owner_id=owner_id, is_clean=True)
                     if owner_id in flags_to_save:
                         flag.is_clean = False
                         flag.hint = flags_to_save[owner_id]
                     flag.save()
                 else:
                     # updating - only save if we are marking dirty or setting a hint
                     flag = to_update[owner_id]
                     if owner_id in flags_to_save and (flag.is_clean or not flag.hint):
                         flag.is_clean = False
                         flag.hint = flags_to_save[owner_id]
                         flag.save()
         else:
             # only update the flags that are already in the database
             flags_to_update = OwnershipCleanlinessFlag.objects.filter(
                 Q(domain=self.domain),
                 Q(owner_id__in=flags_to_save.keys()),
                 Q(is_clean=True) | Q(hint__isnull=True)
             )
             for flag in flags_to_update:
                 flag.is_clean = False
                 flag.hint = flags_to_save[flag.owner_id]
                 flag.save()
Beispiel #2
0
 def commit_dirtiness_flags(self):
     """
     Updates any dirtiness flags in the database.
     """
     if self.domain:
         flags_to_save = self.get_flags_to_save()
         if should_create_flags_on_submission(self.domain):
             assert settings.UNIT_TESTING  # this is currently only true when unit testing
             all_touched_ids = set(flags_to_save.keys()) | self.get_clean_owner_ids()
             to_update = {f.owner_id: f for f in OwnershipCleanlinessFlag.objects.filter(
                 domain=self.domain,
                 owner_id__in=list(all_touched_ids),
             )}
             for owner_id in all_touched_ids:
                 if owner_id not in to_update:
                     # making from scratch - default to clean, but set to dirty if needed
                     flag = OwnershipCleanlinessFlag(domain=self.domain, owner_id=owner_id, is_clean=True)
                     if owner_id in flags_to_save:
                         flag.is_clean = False
                         flag.hint = flags_to_save[owner_id]
                     flag.save()
                 else:
                     # updating - only save if we are marking dirty or setting a hint
                     flag = to_update[owner_id]
                     if owner_id in flags_to_save and (flag.is_clean or not flag.hint):
                         flag.is_clean = False
                         flag.hint = flags_to_save[owner_id]
                         flag.save()
         else:
             # only update the flags that are already in the database
             flags_to_update = OwnershipCleanlinessFlag.objects.filter(
                 Q(domain=self.domain),
                 Q(owner_id__in=flags_to_save.keys()),
                 Q(is_clean=True) | Q(hint__isnull=True)
             )
             for flag in flags_to_update:
                 flag.is_clean = False
                 flag.hint = flags_to_save[flag.owner_id]
                 flag.save()