add management command to reset sponsor benefits
This commit is contained in:
		
							parent
							
								
									7d8d9fe881
								
							
						
					
					
						commit
						1ad87798ad
					
				
					 3 changed files with 38 additions and 0 deletions
				
			
		
							
								
								
									
										0
									
								
								symposion/sponsorship/management/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								symposion/sponsorship/management/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								symposion/sponsorship/management/commands/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								symposion/sponsorship/management/commands/__init__.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | |||
| from django.core.management.base import BaseCommand | ||||
| 
 | ||||
| from django.contrib.auth.models import Group | ||||
| 
 | ||||
| from symposion.sponsorship.models import Sponsor, SponsorBenefit | ||||
| 
 | ||||
| 
 | ||||
| class Command(BaseCommand): | ||||
|      | ||||
|     def handle(self, *args, **options): | ||||
|         for sponsor in Sponsor.objects.all(): | ||||
|             level = None   | ||||
|             try: | ||||
|                 level = sponsor.level | ||||
|             except SponsorLevel.DoesNotExist: | ||||
|                 pass | ||||
|             if level: | ||||
|                 for benefit_level in level.benefit_levels.all(): | ||||
|                     # Create all needed benefits if they don't exist already | ||||
|                     sponsor_benefit, created = SponsorBenefit.objects.get_or_create( | ||||
|                         sponsor=sponsor, benefit=benefit_level.benefit) | ||||
|                      | ||||
|                     if created: | ||||
|                         print "created", sponsor_benefit, "for", sponsor | ||||
|                      | ||||
|                     # and set to default limits for this level. | ||||
|                     sponsor_benefit.max_words = benefit_level.max_words | ||||
|                     sponsor_benefit.other_limits = benefit_level.other_limits | ||||
|                      | ||||
|                     # and set to active | ||||
|                     sponsor_benefit.active = True | ||||
|                      | ||||
|                     # @@@ We don't call sponsor_benefit.clean here. This means | ||||
|                     # that if the sponsorship level for a sponsor is adjusted | ||||
|                     # downwards, an existing too-long text entry can remain, | ||||
|                     # and won't raise a validation error until it's next | ||||
|                     # edited. | ||||
|                     sponsor_benefit.save() | ||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Luke Hatcher
						Luke Hatcher