def get(self): config = Configuration() ruler = """ -------------------------------------------------------------------------------- 0________1_________2_________3_________4_________5_________6_________7_________8 1 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- """ template = Template(config.get('WELCOME_MAIL_TEXT')) member = Member() member.name = 'Ola Normann' member.address = 'Norskeveien 1' member.zipcode = '9876' member.city = 'Olabyen' member.country = Country().all().order('order').fetch(1)[0] member.email = '*****@*****.**' member.phone = '916 75 105' member.phone_home = '939 90 115' member.phone_work = '101 33 116' member.number = '9669' member.access_code = 'BBQWTF' member.member_type = MemberType.all().order('order').fetch(1)[0] sample_data = { 'year': 2014, 'fee': 400, 'account_no': config.get('GIRO_ACCOUNT_NO'), 'member': member, 'profile_url': constants.PROFILE_URL } sample_text = template.render(sample_data) # Merge template before submitting text data = {'text': ruler + sample_text + ruler} template = JINJA_ENVIRONMENT.get_template( 'templates/settings/email_preview.html') self.response.write(template.render(data))
def get(self): config = Configuration() ruler = """ -------------------------------------------------------------------------------- 0________1_________2_________3_________4_________5_________6_________7_________8 1 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- """ template = Template(config.get('WELCOME_MAIL_TEXT')) member = Member() member.name = 'Ola Normann' member.address = 'Norskeveien 1' member.zipcode = '9876' member.city = 'Olabyen' member.country = Country().all().order('order').fetch(1)[0] member.email = '*****@*****.**' member.phone = '916 75 105' member.phone_home = '939 90 115' member.phone_work = '101 33 116' member.number = '9669' member.access_code = 'BBQWTF' member.member_type = MemberType.all().order('order').fetch(1)[0] sample_data = { 'year': 2014, 'fee': 400, 'account_no': config.get('GIRO_ACCOUNT_NO'), 'member': member, 'profile_url': constants.PROFILE_URL } sample_text = template.render(sample_data) # Merge template before submitting text data = {'text': ruler + sample_text + ruler } template = JINJA_ENVIRONMENT.get_template('templates/settings/email_preview.html') self.response.write(template.render(data))
def post(self): complete = [] incomplete = [] values = {} # Holy crap this is ugly. There has to be a better way. name = self.request.get('name') if not name or name.strip() == '' or name.strip().startswith('http'): incomplete.append('name') else: values['name'] = name complete.append('name') address = self.request.get('address') # Spammers put URLs in the address field so we reject those right away if not address or address.strip() == '' or address.strip().startswith( 'http'): incomplete.append('address') else: values['address'] = address complete.append('address') zipcode = self.request.get('zip') if (not zipcode or zipcode.strip() == '') or len(zipcode.strip()) < 4: incomplete.append('zip') else: values['zip'] = zipcode complete.append('zip') city = self.request.get('city') if not city or city.strip() == '': incomplete.append('city') else: values['city'] = city complete.append('city') if 'zip' in incomplete or 'city' in incomplete: incomplete.append('zipcity') country_key = self.request.get('country').strip() country = Country.get(country_key) countries = Country.all().order('order').fetch(100) if not country or not country_key or country_key.strip() == '': incomplete.append('country') # retrieve countries since we're going to need them else: values['country'] = country.name complete.append('country') email = self.request.get('email') if not email or email.strip() == '' or not mail.is_email_valid(email): incomplete.append('email') else: values['email'] = email complete.append('email') mobile = self.request.get('mobile') if mobile and mobile.strip() == '': mobile = None values['mobile'] = mobile home = self.request.get('home') if home and home.strip() == '': home = None values['home'] = home work = self.request.get('work') if work and work.strip() == '': work = None values['work'] = work member_type = self.request.get('type') if not member_type or member_type.strip() == '': member_type = '1' types = MemberType.all().fetch(100) mtype = None # TODO: Custom settings? Constants at least. if member_type == '1': mtype = next(t for t in types if t.name == DEFAULT_MEMBER_NAME) else: mtype = next(t for t in types if t.name == DEFAULT_SUPPORT_MEMBER_NAME) values['type'] = mtype.name comment = self.request.get('comment') complete.append('comment') values['comment'] = comment error_message = '' # Check if member exists; existing = Member.all().filter('email', email).fetch(1) if len(existing) > 0: incomplete.append('email') error_message = 'Det er allerede registrert noen i medlemsregisteret med denne epostadressen!' # TODO: Error message if len(incomplete) > 0: # missing field, redirect to signup page again template = JINJA_ENVIRONMENT.get_template( 'templates/selfservice/signup.html') return self.response.write( template.render({ 'countries': countries, 'incomplete': incomplete, 'complete': complete, 'error_message': error_message, 'values': values })) # invariant: fields are OK, create new member, send mail, # create payment history on member. template = JINJA_ENVIRONMENT.get_template( 'templates/selfservice/signup_receipt.html') data = {'values': values, 'profile_url': PROFILE_URL} statuses = Status.all().fetch(100) # TODO: Handle existing members signing up again new_member = Member() new_member.name = name new_member.address = address new_member.zipcode = zipcode new_member.city = city new_member.notes = comment new_member.country = country new_member.membertype = mtype status = next(s for s in statuses if s.name == SIGNUP_STATUS_NAME) new_member.status = status new_member.number = dbutils.create_new_member_no() new_member.email = email new_member.member_since = datetime.date.today() if mobile: new_member.phone = mobile if work: new_member.phone_work = work if home: new_member.phone_home = home new_member.generate_access_code() new_member.member_since = datetime.date.today() new_member.member_type = mtype new_member.put() new_member.update_index() self.send_welcome_mail(new_member) self.send_notification_mails(new_member) # TODO: Invalidate counts for categories # Handle mutations on members gracefully return self.response.write(template.render(data))
def post(self): complete = [] incomplete = [] values = {} # Holy crap this is ugly. There has to be a better way. name = self.request.get('name') if not name or name.strip() == '': incomplete.append('name') else: values['name'] = name complete.append('name') address = self.request.get('address') if not address or address.strip() == '': incomplete.append('address') else: values['address'] = address complete.append('address') zipcode = self.request.get('zip') if (not zipcode or zipcode.strip() == '') or len(zipcode.strip()) < 4: incomplete.append('zip') else: values['zip'] = zipcode complete.append('zip') city = self.request.get('city') if not city or city.strip() == '': incomplete.append('city') else: values['city'] = city complete.append('city') if 'zip' in incomplete or 'city' in incomplete: incomplete.append('zipcity') country_key = self.request.get('country').strip() country = Country.get(country_key) countries = Country.all().order('order').fetch(100) if not country or not country_key or country_key.strip() == '': incomplete.append('country') # retrieve countries since we're going to need them else: values['country'] = country.name complete.append('country') email = self.request.get('email') if not email or email.strip() == '' or not mail.is_email_valid(email): incomplete.append('email') else: values['email'] = email complete.append('email') mobile = self.request.get('mobile') if mobile and mobile.strip() == '': mobile = None values['mobile'] = mobile home = self.request.get('home') if home and home.strip() == '': home = None values['home'] = home work = self.request.get('work') if work and work.strip() == '': work = None values['work'] = work member_type = self.request.get('type') if not member_type or member_type.strip() == '': member_type = '1' types = MemberType.all().fetch(100) mtype = None # TODO: Custom settings? Constants at least. if member_type == '1': mtype = next(t for t in types if t.name == DEFAULT_MEMBER_NAME) else: mtype = next(t for t in types if t.name == DEFAULT_SUPPORT_MEMBER_NAME) values['type'] = mtype.name comment = self.request.get('comment') complete.append('comment') values['comment'] = comment error_message = '' # Check if member exists; existing = Member.all().filter('email', email).fetch(1) if len(existing) > 0: incomplete.append('email') error_message = 'Det er allerede registrert noen i medlemsregisteret med denne epostadressen!' # TODO: Error message if len(incomplete) > 0: # missing field, redirect to signup page again template = JINJA_ENVIRONMENT.get_template('templates/selfservice/signup.html') return self.response.write(template.render({ 'countries': countries, 'incomplete': incomplete, 'complete': complete, 'error_message': error_message, 'values': values })) # invariant: fields are OK, create new member, send mail, # create payment history on member. template = JINJA_ENVIRONMENT.get_template('templates/selfservice/signup_receipt.html') data = { 'values': values, 'profile_url': PROFILE_URL } statuses = Status.all().fetch(100) # TODO: Handle existing members signing up again new_member = Member() new_member.name = name new_member.address = address new_member.zipcode = zipcode new_member.city = city new_member.notes = comment new_member.country = country new_member.membertype = mtype status = next(s for s in statuses if s.name == SIGNUP_STATUS_NAME) new_member.status = status new_member.number = dbutils.create_new_member_no() new_member.email = email new_member.member_since = datetime.date.today() if mobile: new_member.phone = mobile if work: new_member.phone_work = work if home: new_member.phone_home = home new_member.generate_access_code() new_member.member_since = datetime.date.today() new_member.member_type = mtype new_member.put() self.send_welcome_mail(new_member) self.send_notification_mails(new_member) # TODO: Invalidate counts for categories # Handle mutations on members gracefully return self.response.write(template.render(data))