示例#1
0
def user_register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User()
        user.set_attrs(form.data)
        user.updatetime = time.strftime('%Y-%m-%d %H:%M:%S',
                                        time.localtime(
                                            (time.time())))  # 修改数据更新时间

        # 判断是否已经存在该公司,如不存在,则创建该公司的公司管理员账户,并创建相应数据表
        # 如果存在,则只能创建公司普通人员账户,不创建数据表
        if user.authority == 'com_person':
            db.session.add(user)
            db.session.commit()
        else:
            # 公司不存在,且注册时选择了公司管理员,则允许创建用户,并创建相关数据表
            company = Company()
            company.set_attrs(form.data)
            company.company_number = "%03d" % (Company.query.count() + 1)
            db.session.add(company)
            db.session.add(user)
            db.session.commit()
            # 创建报告保存文件夹,根据公司编号创建,如超级管理员为001,则文件夹名为001
            os.makedirs(
                os.path.join(current_app.config['DOCXFILE_DIR'],
                             company.company_number))
        return render_template('user/userRegister.html',
                               messages={'message': ['注册成功!']})
    else:
        return render_template('user/userRegister.html', messages=form.errors)
示例#2
0
def add_admin_user():
    admin_user = User()
    admin_user.email = '*****@*****.**'
    admin_user.password = '******'
    admin_user.company = 'nbtjy'
    admin_user.company_address = 'JNL1588A'
    admin_user.linkman = 'sky'
    admin_user.phone_number = '12345678901'
    admin_user.authority = 'super_admin'
    admin_user.updatetime = time.strftime('%Y-%m-%d %H:%M:%S',
                                          time.localtime(
                                              (time.time())))  # 修改数据更新时间
    admin_user.status = 1  # =0,该用户失效

    # 加入到公司库内
    admin_company = Company()
    admin_company.company = 'nbtjy'
    admin_company.company_number = '001'
    admin_company.company_address = 'JNL1588A'
    admin_company.linkman = 'sky'
    admin_company.phone_number = '12345678901'
    admin_company.status = 1

    try:
        db.session.add(admin_user)
        db.session.add(admin_company)
        db.session.commit()
        # 创建报告保存文件夹
        os.makedirs(os.path.join(current_app.config['DOCXFILE_DIR'], '001'))
    except:
        print('注册超级管理员账户失败!')
    else:
        print('注册超级管理员账户成功,请使用email=‘[email protected]’,password=‘123456’登录')
示例#3
0
def addcompany():
    '''
    add company
    '''
    if current_user.admin:
        form = CompanyForm()
        if form.validate_on_submit:
            exist = Company.query.filter_by(nit=form.nit.data).first()

            if not exist:
                company = Company(name=form.name.data,
                                  nit=form.nit.data,
                                  email_contact=form.email_contact.data)
                try:
                    db.session.add(company)
                    db.session.commit()
                    flash('Company added successfully!!')
                except Exception as e:
                    flash('Can´t added company {}'.format(e))

                return redirect(url_for('admin_bp.list_companies'))
        return render_template('/company.html',
                               form=form,
                               username=current_user.username)
    return redirect(url_for('auth_bp.login'))
示例#4
0
def create_company(*, account: Account, name: str, website: str,
                   specialties: list, **kwargs) -> Company:
    company_account_check(account)
    if company_exist(account.id, raise_exception=False):
        raise InvalidInputFormat(
            "Account {} already has a company account.".format(account.id))
    c = Company(account=account, name=name, website=website, **kwargs)
    c.save()
    c.specialties.add(*specialties)
    return c
示例#5
0
def admin_info_complete():
    if request.method == 'POST':
        company_name = request.form.get("company_name")
        owner = request.form.get("owner")
        address = request.form.get("address")
        tel = request.form.get("tel")
        email = request.form.get("email")
        contacts = request.form.get("contacts")
        contact_phone = request.form.get("contact_phone")
        company = Company(company_name, owner, contacts, contact_phone, email,
                          address, tel)
        current_user.is_userInfo_completed = 1
        current_user.fk_company_id = company.id
        db.session.add(company)
        db.session.add(current_user)
        db.session.commit()
        return render_template('user/wait_company_check.html')
    else:
        return redirect(url_for('main.home'))
示例#6
0
def populate(populate):
    """
	Populate the database
	"""
    skills = ["Javascript", "HTML", "CSS", "SASS", "PHP", "Python"]

    for name in skills:
        skill = Skill(name=name)
        db.session.add(skill)

    student_1 = Student(name="Lucia",
                        last_name="Cardenas",
                        age=18,
                        email="*****@*****.**")

    student_2 = Student(name="Maria Gracia",
                        last_name="Silva",
                        age=22,
                        email="*****@*****.**")
    db.session.add_all([student_1, student_2])
    company = Company(name="Athelas",
                      address="Recavarren esquina con pardo",
                      phone="+51961738608",
                      website="https://www.athelas.pe")
    db.session.add(company)
    company2 = Company(name=u"Lucuma Labs",
                       address="Cerca al faro de miraflores",
                       phone="+511 681 0041",
                       website="https://lucumalabs.com/")
    db.session.add(company2)
    company3 = Company(name=u"Codepicnic",
                       address="Por todo el mundo",
                       phone="+48652689522",
                       website="https://codepicnic.com/")
    db.session.add(company3)

    db.session.commit()

    skills = db.session.query(Skill).all()
    company.skills.append(skills[0])
    company.skills.append(skills[1])
    company.skills.append(skills[2])
    company.skills.append(skills[3])

    company2.skills.append(skills[4])
    company2.skills.append(skills[5])
    company2.skills.append(skills[1])

    company3.skills.append(skills[3])
    company3.skills.append(skills[5])
    company3.skills.append(skills[1])

    student_1.skills.append(skills[0])
    student_1.skills.append(skills[1])
    student_1.skills.append(skills[2])

    student_2.skills.append(skills[0])
    student_2.skills.append(skills[1])
    student_2.skills.append(skills[2])
    student_2.skills.append(skills[3])

    db.session.commit()
示例#7
0
from app.models.product import Product
from app.models.company import Company
from unittest.mock import patch
from app import app
import unittest

company = Company('id', 1)
product = Product('id', 'company_id', 10.00)
product_dump = {
    'id': 'id',
    'company_id': 'company_id',
    'value': 10.00,
    'created': 'created',
    'updated': 'updated',
    'removed': 'removed'
}


def user_dump(id=1):
    user_dump = {
        'id': id,
        'access': 'access',
        'username': '******',
        'created': 'created',
        'updated': 'updated',
        'removed': 'removed'
    }
    return user_dump


class TestProductFind(unittest.TestCase):
示例#8
0
def create_company(company:CompanySerializerIn, db:Session=Depends(get_db)):
    company_obj = Company(**company.dict())
    db.add(company_obj)
    db.commit()
    db.refresh(company_obj)
    return company_obj
示例#9
0
 def test_add_company(self):
     with self.app.app_context():
         company = Company(name='Go hard or go home')
         check = company.save_company()
     self.assertTrue(check, "Company should be added")
示例#10
0
    def post(self):
        ''' Create a company '''
        arguments = request.get_json(force=True)
        name = arguments.get('name').strip()
        district = arguments.get('district').strip() or None
        postal = arguments.get('postal').strip() or None
        country = arguments.get('country').strip() or None
        tech_person_name_string = arguments.get(
            'techPersonName').strip() or None
        tech_person_email = arguments.get('techPersonEmail').strip() or None
        address_line_1 = arguments.get('address1').strip() or None
        address_line_2 = arguments.get('address2').strip() or None
        legal_person_name_str = arguments.get(
            'legalPersonName').strip() or None
        legal_person_email = arguments.get('legalPersonEmail').strip() or None
        tech_person_name = tech_person_name_string.split()
        legal_person_name = legal_person_name_str.split()

        if not name:
            return abort(400, 'Name cannot be empty!')
        try:
            address = Address(
                district=district,
                postal_code=postal,
                country=country,
                address_line_1=address_line_1,
                address_line_2=address_line_2
                )
            tech_person = Person(tech_person_name[0], tech_person_name[-1])
            legal_person = Person(legal_person_name[0], legal_person_name[-1])
            tech_contact = Contact(email=tech_person_email)
            legal_contact = Contact(email=legal_person_email)

            if not address.save_address():
                address = Address.query.filter_by(
                    address_line_1=address.address_line_1,
                    active=True).first()
            if not tech_person.save_person():
                tech_person = Person.query.filter_by(
                    full_name=tech_person_name_string).first()
            if not legal_person.save_person():
                legal_person = Person.query.filter_by(
                    full_name=legal_person_name_str).first()
            if not tech_contact.save_contact():
                tech_contact = Contact.query.filter_by(
                    email=tech_person_email).first()
            if not legal_contact.save_contact():
                legal_contact = Contact.query.filter_by(
                    email=legal_person_email).first()
            tech_contact_person = ContactPerson(
                person=tech_person,
                contact=tech_contact)
            legal_contact_person = ContactPerson(
                person=legal_person,
                contact=legal_contact)
            if not tech_contact_person.save_contact_person():
                tech_contact_person = ContactPerson.query.filter_by(
                    person=tech_person,
                    contact=tech_contact).first()
            if not legal_contact_person.save_contact_person():
                legal_contact_person = ContactPerson.query.filter_by(
                    person=legal_person,
                    contact=legal_contact).first()

            company = Company(
                name=name,
                address=address,
                legal_person=legal_contact_person,
                tech_person=tech_contact_person
                )
            if company.save_company():
                return {'message': 'Company created successfully!'}, 201
            return abort(409, message='Company already exists!')
        except Exception as e:
            abort(400, message='Failed to create new company -> {}'.format(e))
示例#11
0
from werkzeug.exceptions import InternalServerError, Conflict
from app.models.company import Company
from schema import Schema, Or, Use
from unittest.mock import patch
from app.views.company import (find_by_company_id, logical_restore,
                               logical_delete, create, update, find)
from random import randrange
from sqlalchemy.exc import (NotSupportedError, OperationalError,
                            ProgrammingError, IntegrityError, InternalError,
                            DataError)
import unittest

company = Company('id', user_id=1)
integrity_error = IntegrityError('Mock', 'mock', Exception('mock', 'mock'))
aleatory_errors = [
    DataError('Mock', 'mock', Exception('mock', 'mock')),
    OperationalError('Mock', 'mock', Exception('mock', 'mock')),
    InternalError('Mock', 'mock', Exception('mock', 'mock')),
    ProgrammingError('Mock', 'mock', Exception('mock', 'mock')),
    NotSupportedError('Mock', 'mock', Exception('mock', 'mock'))
]

company_validate = Schema({
    'id': Use(str),
    'user_id': Use(int),
    'created': Or(str, None),
    'updated': Or(str, None),
    'removed': Or(str, None)
})

company_list_validate = Schema([{