def send(): data = request.forms v = Validator(data) v.field("name").required() v.field("email_phone").required() v.field("reason").integer() receivers = [c.cnt_value for c in request.db(Contacts).list_by_type('feedback')] if v.is_valid(): data = v.valid_data reason = translate('site.contacts.reason'+str(data.get("reason")), language=get_default_language().lng_code) text = """\ Контактное лицо: %s <br/> Email или телефон: %s <br/> Причина: %s <br/> <br/> %s """ % (data.get('name'), data.get('email_phone'), reason, data.get('text')) msg = MIMEText(text.encode('utf-8'), 'html') sender = data.get('email') receiver = ', '.join(receivers) msg['Subject'] = 'Письмо от пользователя %s' % data.get('name') msg['From'] = 'Обратная связь' msg['To'] = receiver s = smtplib.SMTP('localhost') s.sendmail(sender, receiver, msg.as_string()) s.quit() return {"status": "ok", "message": translate('site.feedback.message_sent', default="Повiдомлення вiдправленно.")} else: return {"status": "fail", "errors": translate('site.feedback.fill_all_fields', default="Заповнiть, будь ласка, усi поля.")}
def load_month(): translate('date.month_1', default="Января") translate('date.month_2', default="Февраля") translate('date.month_3', default="Марта") translate('date.month_4', default="Апреля") translate('date.month_5', default="Мая") translate('date.month_6', default="Июня") translate('date.month_7', default="Июля") translate('date.month_8', default="Августа") translate('date.month_9', default="Сентября") translate('date.month_10', default="Октября") translate('date.month_11', default="Ноября") translate('date.month_12', default="Декабря")
def get_message(code, message): messages = { 'required': translate("errors.field_is_required", default="Обязательное поле"), 'not_integer': translate("errors.field_is_not_integer", default="Должно быть целым числом"), 'not_float': translate("errors.field_is_not_float", default="Должно быть числом"), 'not_boolean': translate("errors.field_is_not_boolean", default="Должно быть булевым значением"), 'string_not_in_range': translate("errors.string_not_in_range", default="Длина текста должна быть не меньше %(min)d и не больше %(max)d символов"), 'string_too_short': translate("errors.string_too_short", default='Длина текста должна быть не меньше %(min)d символов'), 'string_too_long': translate("errors.string_too_long", default='Длина текста должна быть не больше %(max)d символов'), 'not_image': translate("errors.not_image", default='Файл не является картинкой'), 'is_not_svg': translate("errors.is_not_svg", default='Файл не является SVG картинкой'), 'wrong_email_format': translate("errors.wrong_email_format", default='Введен неверный адрес электронной почты'), 'wrong_datetime_format': translate("errors.wrong_datetime_format", default='Неверный формат') } if message is None: message = messages[code] return code, message