def handle(self, *args, **options):
        count = 0
        for file in args:
          with open(file, 'rb') as csvfile:
            reader = csv.reader(csvfile, delimiter=',', quotechar='"')
            for row in reader:
                count = count + 1
                if count != 1:
                    email = row[2]
                    try:
                        skater = Skater.objects.get(email__exact = email)
                        self.stdout.write( str(count) + " EXISTS ALREADY " + email )
                        skater.user_hash = random_string(32)
                        skater.save()
                    except Skater.DoesNotExist:
                        skater = False
                    
                    if skater is False:
                        try:
                            skater = Skater.objects.create_user(email, Skater.objects.make_random_password())
                            skater.status = SkaterStatus.objects.get(name__exact = settings.REGISTRATION_INACTIVE_STATUS)

                            skater.first_name = row[1]
                            skater.last_name = row[0]

                            skater.save()
                            self.stdout.write( str(count) + " CREATED ACCOUNT " + email )

                        except:
                            skater = False
                            self.stdout.write( str(count) + "OH CRAP ----- Problem importing row: " + email )


                    if skater:

                        html = render_to_string('emails/pre-reg-invite.html',
                            {
                                'skater' : skater,
                                'skater_short_name': skater.get_short_name(),
                            }
                        )

                        msg = EmailMultiAlternatives(
                            "Mad Wreckin' Dolls Registration Invite",
                            html,
                            settings.FROM_EMAIL,
                            [ skater.email ],
                            [ settings.FROM_EMAIL ],
                            headers = {
                                'Reply-To' : settings.FROM_EMAIL,
                                'CC' : "*****@*****.**",
                                'Content-Type' : 'text/html'
                            },
                        )

                        msg.content_subtype = "html"
                        msg.send(fail_silently = False)

                        self.stdout.write( str(count) + "\t OK! " + email )
 def set_user_hash(self, force = False):
     if force or self.user_hash == '':
         self.user_hash = random_string(32)
    def handle(self, *args, **options):
        count = 0
        for file in args:
          with open(file, 'rb') as csvfile:
            reader = csv.reader(csvfile, delimiter=',', quotechar='"')
            for row in reader:
                    last_name = row[0]
                    first_name = row[1]
                    derby_name = row[2]
                    derby_number = row[3]
                    wftda = row[4]
                    email = row[5]

                    if email != "":
                        try:
                            skater = Skater.objects.get(email__iexact=email)
                        except Skater.DoesNotExist:
                            skater = False
                            self.stdout.write( str(count) + " !!!!!!!!!!!!!!! OH CRAP ----- Problem with: " + email)

                    if skater:
                        self.stdout.write( "{} - {} {}, '{}' #{} WFTDA#{}".format(
                            email,
                            first_name,
                            last_name,
                            derby_name,
                            derby_number,
                            wftda
                        ))
                        
                        skater.first_name = first_name
                        skater.last_name = last_name
                        if derby_name != "":
                            skater.derby_name = derby_name
                        if derby_number != "":
                            skater.derby_number = derby_number
                        if wftda != "":
                            skater.wftda_number = wftda
                        skater.user_hash = random_string(32)
                        skater.save()

                        html = render_to_string('emails/pre-reg-invite-simple.html',
                            {
                                'skater' : skater,
                                'skater_short_name': skater.get_short_name(),
                            }
                        )

                        msg = EmailMultiAlternatives(
                                "Mad Wreckin' Dolls Fall 2016 Registration",
                                html,
                                settings.FROM_EMAIL,
                                [ skater.email ],
                                [ settings.FROM_EMAIL ],
                                headers = {
                                    'Reply-To' : settings.FROM_EMAIL,
                                    'CC' : "*****@*****.**",
                                    'Content-Type' : 'text/html'
                                },
                        )

                        msg.content_subtype = "html"
                        msg.send(fail_silently = False)
                	    
                        self.stdout.write( str(count) + " OK! " + skater.email )
                        self.stdout.write( "\n" )
                        count = count + 1
Beispiel #4
0
def survey_invite(request, slug):
    if not request.user.is_admin:
        return render(request, 'rink/access_denied.html')
    
    all_surveys = Survey.objects.all()

    if slug:
        try:
            survey = Survey.objects.get(slug_url=slug)
        except Survey.DoesNotExist:
            return render(request, 'rink/survey_stats.html', {'surveys': all_surveys, 'error': "That survey does not appear to exist." })
    else:
        return render(request, 'rink/survey_stats.html', {'surveys': all_surveys} )


    submit_message = False
    if request.method == "POST":
        invites = request.POST.getlist('invite')
        
        sent = 0
        failed = 0

        for invite in invites:
            try:
                sk = Skater.objects.get(pk=invite)

                survey_invite = SurveyInvite()
                survey_invite.user = sk
                survey_invite.survey = survey
                survey_invite.hash = random_string(32)
                survey_invite.date_sent = datetime.now()
                survey_invite.save()


                html = render_to_string('emails/survey_invite.html',
                            {
                                'skater': sk,
                                'skater_short_name': sk.get_short_name(),
                                'survey': survey,
                                'invite': survey_invite,
                            }
                )

                msg = EmailMultiAlternatives(
                            "Mad Wreckin' Dolls Voting - %s" % (survey),
                            html,
                            settings.FROM_EMAIL,
                            [ sk.email ],
                            [ settings.FROM_EMAIL ],
                            headers = {
                                'Reply-To' : settings.FROM_EMAIL,
                                'CC' : "*****@*****.**",
                                'Content-Type' : 'text/html'
                            },
                )
                
                msg.content_subtype = "html"
                msg.send(fail_silently = False)

                sent = sent + 1

            except Skater.DoesNotExist:
                """ failed for some reason or another """
                failed = failed + 1

        submit_message = "Sent %s voting invites to selected members." % (sent)
        if failed > 0:
            submit_message = submit_message + "<br><br><storng>Failed to sent %s invites for whatever reason. Weird." % (failed)


    all_skaters = Skater.objects.exclude(status__name="inactive").all()
    invited = all_skaters.filter(survey_invite__survey=survey)
    not_invited = all_skaters.exclude(pk__in=invited)

    return render(request, 'rink/survey_invite.html', {
        'surveys': all_surveys,
        'survey': survey,
        'tab': 'invite',
        'submit_message': submit_message,

        'invited': invited,
        'not_invited': not_invited,
    })