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
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, })