Files @ f3614fcf5285
Branch filter:

Location: symposion_app/symposion/sponsorship/management/commands/reset_sponsor_benefits.py

Patrick Altman
Merge branch 'master' of https://github.com/pyohio/symposion into pyohio-master

Conflicts:
README.md
symposion/boxes/urls.py
symposion/cms/urls.py
symposion/proposals/actions.py
symposion/proposals/urls.py
symposion/proposals/views.py
symposion/reviews/tests.py
symposion/reviews/urls.py
symposion/reviews/views.py
symposion/schedule/forms.py
symposion/schedule/models.py
symposion/schedule/views.py
symposion/speakers/fixture_gen.py
symposion/sponsorship/urls.py
symposion/templates/cms/file_create.html
symposion/templates/cms/file_index.html
symposion/templates/conference/user_list.html
symposion/templates/dashboard.html
symposion/templates/emails/proposal_new_message/message.html
symposion/templates/emails/proposal_updated/message.html
symposion/templates/emails/speaker_addition/message.html
symposion/templates/emails/speaker_invite/message.html
symposion/templates/proposals/_pending_proposal_row.html
symposion/templates/proposals/_proposal_fields.html
symposion/templates/proposals/_proposal_row.html
symposion/templates/proposals/proposal_cancel.html
symposion/templates/proposals/proposal_detail.html
symposion/templates/proposals/proposal_edit.html
symposion/templates/proposals/proposal_speaker_manage.html
symposion/templates/proposals/proposal_submit.html
symposion/templates/reviews/_review_table.html
symposion/templates/reviews/base.html
symposion/templates/reviews/result_notification.html
symposion/templates/reviews/result_notification_prepare.html
symposion/templates/reviews/review_admin.html
symposion/templates/reviews/review_assignment.html
symposion/templates/reviews/review_detail.html
symposion/templates/reviews/review_review.html
symposion/templates/reviews/review_stats.html
symposion/templates/schedule/_edit_grid.html
symposion/templates/schedule/_grid.html
symposion/templates/schedule/_slot_edit.html
symposion/templates/schedule/presentation_detail.html
symposion/templates/schedule/schedule_list.html
symposion/templates/speakers/speaker_create.html
symposion/templates/speakers/speaker_edit.html
symposion/templates/speakers/speaker_profile.html
symposion/templates/sponsorship/add.html
symposion/templates/sponsorship/apply.html
symposion/templates/sponsorship/detail.html
symposion/templates/sponsorship/list.html
symposion/templates/teams/team_detail.html
from django.core.management.base import BaseCommand

from symposion.sponsorship.models import Sponsor, SponsorBenefit, SponsorLevel


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()