# Path: ngcrowd/models.py
# class JsonifyMixin:
# class Application(Base, JsonifyMixin):
# class User(Base):
# class Entity(Base, JsonifyMixin):
# class EntityProperty(Base, JsonifyMixin):
# class EntityPropertyValue(Base):
# class ReferenceBookValue(Base):
# class EntityVersions(Base):
#     def __init__(self):
#     def as_json_dict(self, **init):
#     def password_hash(cls, password, salt):
#     def as_dict(self, **addon):
#     def to_dict(self):
#     def to_json_binary_dump(self, json_object):


from ngcrowd.models import DBSession, User
from pyramid.view import view_config
import transaction
import datetime
        import re


@view_config(route_name='register', request_method='POST', renderer='register.mako')
def register_post(request):
    session = DBSession()
    errors = []
    info = ''

    if not request.POST['name']:
        errors.append(u'Вы не указали ваше имя')

    if request.POST['email']:
        if not re.match(r"[^@]+@[^@]+\.[^@]+", request.POST['email']):
            errors.append(u'Неправильный формат адреса электронной почты - адрес должен иметь вид user@server.ru')
        existed_email = session.query(User.email).filter(User.email == request.POST['email']).count()
        if existed_email > 0:
            errors.append(u'Пользователь с таким адресом электронной почты (%s) уже существует' % request.POST['email'])
    else:
        errors.append(u'Вы не указали адрес вашей электронной почты')

    if 'password' in request.POST.keys() or request.POST['pass']:
        if not request.POST['pass2'] or request.POST['pass'] != request.POST['pass2']:
            errors.append(u'Введенные вами пароли не совпадают')
        if len(request.POST['pass']) < 5:
            errors.append(u'Длина пароля должна быть больше 4 символов')
    else:
        errors.append(u'Вы не указали пароль')

    if not errors:
        with transaction.manager:

# Path: ngcrowd/models.py
# class JsonifyMixin:
# class Application(Base, JsonifyMixin):
# class User(Base):
# class Entity(Base, JsonifyMixin):
# class EntityProperty(Base, JsonifyMixin):
# class EntityPropertyValue(Base):
# class ReferenceBookValue(Base):
# class EntityVersions(Base):
#     def __init__(self):
#     def as_json_dict(self, **init):
#     def password_hash(cls, password, salt):
#     def as_dict(self, **addon):
#     def to_dict(self):
#     def to_json_binary_dump(self, json_object):


# Path: ngcrowd/views/register.py
from ngcrowd.models import DBSession, User
from pyramid.view import view_config
import transaction
import datetime
        import re



@view_config(route_name='register', request_method='POST', renderer='register.mako')
def register_post(request):
    session = DBSession()
    errors = []
    info = ''

    if not request.POST['name']:
        errors.append(u'Вы не указали ваше имя')

    if request.POST['email']:
        if not re.match(r"[^@]+@[^@]+\.[^@]+", request.POST['email']):
            errors.append(u'Неправильный формат адреса электронной почты - адрес должен иметь вид user@server.ru')
        existed_email = session.query(User.email).filter(User.email == request.POST['email']).count()
        if existed_email > 0:
            errors.append(u'Пользователь с таким адресом электронной почты (%s) уже существует' % request.POST['email'])
    else:
        errors.append(u'Вы не указали адрес вашей электронной почты')

    if 'password' in request.POST.keys() or request.POST['pass']:
        if not request.POST['pass2'] or request.POST['pass'] != request.POST['pass2']:
            errors.append(u'Введенные вами пароли не совпадают')
        if len(request.POST['pass']) < 5:
            errors.append(u'Длина пароля должна быть больше 4 символов')
    else:
        errors.append(u'Вы не указали пароль')

    if not errors:
        with transaction.manager:

            user = User()