def handle(self, *args, **options):

        tickets = Ticket.objects.filter(
            ticket_type_id=DANCE_PASS_ID,
            dancepasssurvey__isnull=True,
            danceclasssurvey__isnull=False,
        ).order_by('id')

        with as_robot_user():

            dance_pass = TicketType.objects.get(pk=DANCE_PASS_ID)
            dance_pass._survey_type = 'lindy.ticket.forms.DancePassSurveyForm'
            dance_pass.save()

            for ticket in tickets:
                old_survey = ticket.danceclasssurvey
                survey = DancePassSurvey(
                    dance_role=old_survey.dance_role,
                    pass_last_year=old_survey.pass_last_year,
                    first_heard_about_event_source=old_survey.first_heard_about_event_source,
                    at_least_eighteen=old_survey.at_least_eighteen,
                    emergency_contact_name=old_survey.emergency_contact_name,
                    emergency_contact_number=old_survey.emergency_contact_number,
                    ticket=old_survey.ticket,
                )
                survey.save()

                self.stderr.write('  --> updated %s, %s' % (ticket, survey))
            self.stderr.write('%d tickets updated' % len(tickets))
    def handle(self, *args, **options):
        ticket = Ticket.objects.get(pk=202)

        if not ticket.survey:
            survey = DancePassSurvey(
                dance_role=FOLLOWER,
                pass_last_year='Yes',
                first_heard_about_event_source='facebook',
                at_least_eighteen=True,
                emergency_contact_name='None',
                emergency_contact_number=str(ticket.attendee.phone_number),
                ticket=ticket,
            )

            with as_robot_user():
                survey.save()
    def pass_factory(
        self,
        name,
        access_code,
        dance_pass_price=None,
        class_pass_price=None,
        capacity=50,
    ):
        CLASS_PASS = TicketType.objects.get(pk=1)
        DANCE_PASS = TicketType.objects.get(pk=2)

        def _factory(pass_type, price):

            self.stderr.write(' '.join((
                'name', (name + ' tier').title(), '\n',
                'ticket_type', repr(pass_type), '\n',
                'price', str(Decimal(price)), '\n',
                'access_code', access_code, '\n',
                'capacity', str(capacity), '\n',
            )))

            tier, created = TicketTier.objects.get_or_create(
                name=(name + ' tier').title(),
                ticket_type=pass_type,
                price=Decimal(price),
                access_code=access_code,
                capacity=capacity,
            )

            tier.description = ('for ' + name).title()
            tier.start_date = parser.parse('2016-06-28 12:00:00+00:00')
            tier.end_date = parser.parse('2016-12-21 00:00:00+00:00')
            tier.save()

        with as_robot_user():
            if dance_pass_price is not None:
                _factory(CLASS_PASS, dance_pass_price)
            if class_pass_price is not None:
                _factory(DANCE_PASS, class_pass_price)