mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 03:53:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			26 lines
		
	
	
		
			909 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			909 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.db import models
 | |
| from django.db.models import CASCADE
 | |
| from django.db.models.signals import post_delete, post_save
 | |
| from django.utils.timezone import now as timezone_now
 | |
| from typing_extensions import override
 | |
| 
 | |
| from zerver.lib.cache import flush_muting_users_cache
 | |
| from zerver.models.users import UserProfile
 | |
| 
 | |
| 
 | |
| class MutedUser(models.Model):
 | |
|     user_profile = models.ForeignKey(UserProfile, related_name="muter", on_delete=CASCADE)
 | |
|     muted_user = models.ForeignKey(UserProfile, related_name="muted", on_delete=CASCADE)
 | |
|     date_muted = models.DateTimeField(default=timezone_now)
 | |
| 
 | |
|     class Meta:
 | |
|         unique_together = ("user_profile", "muted_user")
 | |
| 
 | |
|     @override
 | |
|     def __str__(self) -> str:
 | |
|         return f"{self.user_profile.email} -> {self.muted_user.email}"
 | |
| 
 | |
| 
 | |
| post_save.connect(flush_muting_users_cache, sender=MutedUser)
 | |
| post_delete.connect(flush_muting_users_cache, sender=MutedUser)
 |