def update(self, store, validated_data): changed_data = get_changed_data(store, validated_data) before_data = StoreHistorySerializer(store).data store = super().update(store, validated_data) after_data = StoreHistorySerializer(store).data if 'weeks_in_advance' in changed_data or \ ('status' in changed_data and store.status == StoreStatus.ACTIVE.value): with transaction.atomic(): for series in store.series.all(): series.update_pickup_dates() if before_data != after_data: History.objects.create( typus=HistoryTypus.STORE_MODIFY, group=store.group, store=store, users=[ self.context['request'].user, ], payload=changed_data, before=before_data, after=after_data, ) store.group.refresh_active_status() return store
def update(self, group, validated_data): if group.is_playground(): # Prevent editing of public fields # Password shouldn't get changed and the others get overridden with a translation message for field in ['name', 'public_description']: if field in validated_data: del validated_data[field] changed_data = get_changed_data(group, validated_data) before_data = GroupHistorySerializer(group).data group = super().update(group, validated_data) after_data = GroupHistorySerializer(group).data if before_data != after_data: user = self.context['request'].user History.objects.create( typus=HistoryTypus.GROUP_MODIFY, group=group, users=[ user, ], payload=changed_data, before=before_data, after=after_data, ) return group
def update(self, series, validated_data): selected_validated_data = {} for attr in self.Meta.update_fields: if attr in validated_data: selected_validated_data[attr] = validated_data[attr] changed_data = get_changed_data(series, selected_validated_data) before_data = PickupDateSeriesHistorySerializer(series).data super().update(series, selected_validated_data) after_data = PickupDateSeriesHistorySerializer(series).data if before_data != after_data: History.objects.create( typus=HistoryTypus.SERIES_MODIFY, group=series.store.group, store=series.store, users=[ self.context['request'].user, ], payload=changed_data, before=before_data, after=after_data, ) series.store.group.refresh_active_status() return series
def update(self, pickupdate, validated_data): selected_validated_data = {} for attr in self.Meta.update_fields: if attr in validated_data: selected_validated_data[attr] = validated_data[attr] changed_data = get_changed_data(pickupdate, selected_validated_data) if pickupdate.series: if 'max_collectors' in changed_data: selected_validated_data['is_max_collectors_changed'] = True if not pickupdate.is_max_collectors_changed: changed_data['is_max_collectors_changed'] = True if 'date' in changed_data: selected_validated_data['is_date_changed'] = True if not pickupdate.is_date_changed: changed_data['is_date_changed'] = True if 'description' in changed_data: selected_validated_data['is_description_changed'] = True if not pickupdate.is_description_changed: changed_data['is_description_changed'] = True super().update(pickupdate, selected_validated_data) if changed_data: post_pickup_modify.send(sender=self.__class__, group=pickupdate.store.group, store=pickupdate.store, user=self.context['request'].user, payload=changed_data) return pickupdate
def update(self, pickupdate, validated_data): selected_validated_data = {} for attr in self.Meta.update_fields: if attr in validated_data: selected_validated_data[attr] = validated_data[attr] changed_data = get_changed_data(pickupdate, selected_validated_data) if pickupdate.series: if 'max_collectors' in changed_data: selected_validated_data['is_max_collectors_changed'] = True if not pickupdate.is_max_collectors_changed: changed_data['is_max_collectors_changed'] = True if 'date' in changed_data: selected_validated_data['is_date_changed'] = True if not pickupdate.is_date_changed: changed_data['is_date_changed'] = True if 'description' in changed_data: selected_validated_data['is_description_changed'] = True if not pickupdate.is_description_changed: changed_data['is_description_changed'] = True super().update(pickupdate, selected_validated_data) if changed_data: History.objects.create( typus=HistoryTypus.PICKUP_MODIFY, group=pickupdate.store.group, store=pickupdate.store, users=[ self.context['request'].user, ], payload=changed_data, ) return pickupdate
def update(self, group, validated_data): changed_data = get_changed_data(group, validated_data) group = super().update(group, validated_data) if changed_data: post_group_modify.send(sender=self.__class__, group=group, user=self.context['request'].user, payload=changed_data) return group
def update(self, group, validated_data): changed_data = get_changed_data(group, validated_data) group = super().update(group, validated_data) if changed_data: user = self.context['request'].user History.objects.create(typus=HistoryTypus.GROUP_MODIFY, group=group, users=[ user, ], payload=changed_data) return group
def update(self, store, validated_data): changed_data = get_changed_data(store, validated_data) store = super().update(store, validated_data) if 'weeks_in_advance' in changed_data: with transaction.atomic(): for series in store.series.all(): series.update_pickup_dates() if changed_data: post_store_modify.send(sender=self.__class__, group=store.group, store=store, user=self.context['request'].user, payload=self.initial_data) return store
def update(self, series, validated_data): selected_validated_data = {} for attr in self.Meta.update_fields: if attr in validated_data: selected_validated_data[attr] = validated_data[attr] changed_data = get_changed_data(series, selected_validated_data) super().update(series, selected_validated_data) series.update_pickup_dates() if changed_data: post_series_modify.send(sender=self.__class__, group=series.store.group, store=series.store, user=self.context['request'].user, payload=changed_data) return series
def update(self, store, validated_data): changed_data = get_changed_data(store, validated_data) store = super().update(store, validated_data) if 'weeks_in_advance' in changed_data: with transaction.atomic(): for series in store.series.all(): series.update_pickup_dates() if changed_data: History.objects.create( typus=HistoryTypus.STORE_MODIFY, group=store.group, store=store, users=[self.context['request'].user, ], payload=changed_data, ) return store
def update(self, series, validated_data): selected_validated_data = {} for attr in self.Meta.update_fields: if attr in validated_data: selected_validated_data[attr] = validated_data[attr] changed_data = get_changed_data(series, selected_validated_data) super().update(series, selected_validated_data) if changed_data: History.objects.create( typus=HistoryTypus.SERIES_MODIFY, group=series.store.group, store=series.store, users=[self.context['request'].user, ], payload=changed_data, ) return series
def update(self, pickupdate, validated_data): selected_validated_data = {} for attr in self.Meta.update_fields: if attr in validated_data: selected_validated_data[attr] = validated_data[attr] changed_data = get_changed_data(pickupdate, selected_validated_data) if pickupdate.series: if 'max_collectors' in changed_data: selected_validated_data['is_max_collectors_changed'] = True if not pickupdate.is_max_collectors_changed: changed_data['is_max_collectors_changed'] = True if 'date' in changed_data: selected_validated_data['is_date_changed'] = True if not pickupdate.is_date_changed: changed_data['is_date_changed'] = True if 'description' in changed_data: selected_validated_data['is_description_changed'] = True if not pickupdate.is_description_changed: changed_data['is_description_changed'] = True before_data = PickupDateHistorySerializer(pickupdate).data super().update(pickupdate, selected_validated_data) after_data = PickupDateHistorySerializer(pickupdate).data if before_data != after_data: History.objects.create( typus=HistoryTypus.PICKUP_MODIFY, group=pickupdate.store.group, store=pickupdate.store, users=[ self.context['request'].user, ], payload=changed_data, before=before_data, after=after_data, ) pickupdate.store.group.refresh_active_status() return pickupdate