kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
				
				
				
			See #890: Ensure report handled_date is populated automatically when handling the report
							rodzic
							
								
									b659eec4df
								
							
						
					
					
						commit
						177f06cf2a
					
				|  | @ -6,13 +6,14 @@ from django.contrib.contenttypes.fields import GenericForeignKey | |||
| from django.contrib.contenttypes.models import ContentType | ||||
| from django.contrib.postgres.fields import JSONField | ||||
| from django.db import models | ||||
| from django.db.models.signals import pre_save | ||||
| from django.dispatch import receiver | ||||
| from django.urls import reverse | ||||
| from django.utils import timezone | ||||
| 
 | ||||
| from funkwhale_api.federation import models as federation_models | ||||
| from funkwhale_api.federation import utils as federation_utils | ||||
| 
 | ||||
| 
 | ||||
| class InstancePolicyQuerySet(models.QuerySet): | ||||
|     def active(self): | ||||
|         return self.filter(is_active=True) | ||||
|  | @ -160,3 +161,11 @@ class Report(federation_models.FederationMixin): | |||
|             self.fid = self.get_federation_id() | ||||
| 
 | ||||
|         return super().save(**kwargs) | ||||
| 
 | ||||
| 
 | ||||
| @receiver(pre_save, sender=Report) | ||||
| def set_handled_date(sender, instance, **kwargs): | ||||
|     if instance.is_handled is True and not instance.handled_date: | ||||
|         instance.handled_date = timezone.now() | ||||
|     elif not instance.is_handled: | ||||
|         instance.handled_date = None | ||||
|  | @ -0,0 +1,22 @@ | |||
| def test_setting_report_handled_to_true_sets_handled_date(factories, now): | ||||
|     target = factories["music.Artist"]() | ||||
|     report = factories["moderation.Report"](target=target) | ||||
| 
 | ||||
|     assert report.is_handled is False | ||||
|     assert report.handled_date is None | ||||
| 
 | ||||
|     report.is_handled = True | ||||
|     report.save() | ||||
| 
 | ||||
|     assert report.handled_date == now | ||||
| 
 | ||||
| 
 | ||||
| def test_setting_report_handled_to_false_sets_handled_date_to_null(factories, now): | ||||
|     target = factories["music.Artist"]() | ||||
|     report = factories["moderation.Report"]( | ||||
|         target=target, is_handled=True, handled_date=now | ||||
|     ) | ||||
|     report.is_handled = False | ||||
|     report.save() | ||||
| 
 | ||||
|     assert report.handled_date is None | ||||
		Ładowanie…
	
		Reference in New Issue
	
	 Eliot Berriot
						Eliot Berriot