def load_departments():
    """
    Loads departments from connected Uber instance
    :return:
    """
    REQUEST_HEADERS = {'X-Auth-Token': cfg.uber_authkey}

    # data being sent to API
    request_data = {'method': 'dept.list'}
    request = requests.post(url=cfg.api_endpoint,
                            json=request_data,
                            headers=REQUEST_HEADERS)
    response = json.loads(request.text)
    response = response['result'].items()

    # print('loading departments')
    session = models.new_sesh()
    for dept in response:
        try:
            mydept = session.query(Department).filter_by(id=dept[0]).one()
            if not mydept.name == dept[1]:
                mydept.name = dept[1]
        except sqlalchemy.orm.exc.NoResultFound:
            mydept = Department()
            mydept.id = dept[0]
            mydept.name = dept[1]
            session.add(mydept)

    session.commit()
    session.close()
    return
def create_department():
    department = Department()
    department_data = json.loads(request.data)
    update_department_data(department, department_data)
    db_session.add(department)
    db_session.commit()
    return jsonify(department.to_dict())
    def get_all_records(self):
        sql = "SELECT * FROM departments"
        cursor = connection.cursor()
        cursor.execute(sql)
        records = cursor.fetchall()

        department_list = []
        for record in records:
            department = Department(record[0], record[1])
            department_list.append(department.json())

        return department_list
Beispiel #4
0
    def test_update(self):
        test_entity_new = Department.random()
        test_entity_new.id = random.randint(1, MAX_ENTITY_NUM)

        self.assertTrue(
            Operator.update(Department,
                            marsh(vars(test_entity_new), DepartmentSchema)))
Beispiel #5
0
def dep_create():
    if not session["logged_in"] or not session.get("person")["admin"]:
        return redirect(url_for("dep_page"))
    db = Database()
    data = request.form
    dep= Department(data["name"], data["fac_id"], data["bu_id"], data["ch_id"])
    db.add_department(dep)
    return redirect(url_for("dep_page"))
Beispiel #6
0
 def deserialize(json):
     return Employee(id=json["id"],
                     login_id=json["loginId"],
                     first_name=json["firstName"],
                     last_name=json["lastName"],
                     department=Department.deserialize(json["department"]),
                     role=Role.deserialize(json["role"]),
                     supervisor=Employee.deserialize(json["supervisor"]) if json["supervisor"] else None)
    def get_department(id):
        sql = "Select * from departments where id = %s"
        cursor = connection.cursor()
        cursor.execute(sql, [id])
        record = cursor.fetchone()
        department = Department(id=record[0], name=record[1], head=record[2])

        return department
 def get_department_by_id(self, id):
     return Department.from_tuple(
         self.cursor.execute(
             """
         SELECT *
         FROM departments
         WHERE id = ?
     """, (id, )).fetchone())
    def create_record(self, department, fk1=None, fk2=None):
        sql = "INSERT INTO departments VALUES (%s, %s) RETURNING *"

        cursor = connection.cursor()
        cursor.execute(
            sql, (department.department_name, department.department_head))
        connection.commit()
        record = cursor.fetchone()
        return Department(record[0], record[1])
Beispiel #10
0
 def post_department():
     try:
         department = Department.json_parse(request.json)
         department = DepartmentService.add_department(department)
         return jsonify(department.json()), 201
     except KeyError:
         return "A name and department head must be entered to add a department.", 400
     except ResourceNotFound as r:
         return r.message, 404
Beispiel #11
0
def dci_from_data(dataset, db, conn):
    for model in [Department(), Course(), Instructor()]:
        sanitized_data = list(map(model.sanitize_from_raw, dataset))
        sanitized_data = list({v['id']: v for v in sanitized_data}.values())
        modeltable = model.__class__.__name__
        result = r.db(db).table(modeltable).insert(sanitized_data).run(conn)
        inserted = result['inserted']
        errors = result['errors']
        logging.info("{0} Inserted \t {1} \t Skipped {2}".format(
            modeltable.ljust(12), inserted, errors))
Beispiel #12
0
 def update_department(department_name):
     try:
         department = Department.json_parse(request.json)
         department.department_name = department_name
         DepartmentService.update_department(department)
         return jsonify(department.json()), 200
     except KeyError:
         return "Please enter a new Department Head for this Department.", 400
     except ResourceNotFound as r:
         return r.message, 404
Beispiel #13
0
def populate_departments_tbl():
    from models.department import Department

    depts = [
        'ANESTHESIOLOGY', 'CARDIOLOGY', 'CARDIOVASCULAR', 'CSP',
        'EMERGENCY MEDICINE', 'FAMILY MEDICINE', 'GENERAL MEDICINE', 'GI',
        'HEMATOLOGY', 'HOSPITAL MEDICINE', 'IHPI', 'INFECTIOUS DISEASE',
        'INTERNAL MEDICINE', 'NEPHROLOGY', 'NURSING', 'PALLIATIVE CARE',
        'PSYCHIATRY', 'PULMONARY', 'RADIATION ONCOLOGY', 'SPH', 'UROLOGY',
        'VASCULAR SURGERY', 'VERAM'
    ]
    print('Populating departments...')
    for dept in depts:
        try:
            Department.add_rec(dao, dept)
        except Exception as e:
            print('Error adding department %s: %s' % (dept, str(e)))
            return False
    print('Departments populated!')
    return True
def new_department():
    new_department_data = Department.from_tuple(
        tuple([0] + request.data.decode("utf-8").split(",")))
    error = context.repository.add_department(
        new_department_data.name, new_department_data.country,
        new_department_data.city, new_department_data.address,
        new_department_data.department_manager)
    if error == "DEPARTMENT NAME DUPLICATE":
        return "This department name is occupied", 400
    context.repository.commit()
    return "", 204
Beispiel #15
0
    def test_update(self):
        test_entity_new = Department.random()
        test_entity_new_id = random.randint(1, MAX_ENTITY_NUM)
        test_entity_new.id = test_entity_new_id

        self.client.put(f'/departments/{test_entity_new_id}',
                        data=marsh(test_entity_new, DepartmentSchema))

        get_response = self.client.get(f'/departments/{test_entity_new_id}')
        self.assertEqual(marsh(test_entity_new, DepartmentSchema),
                         marsh(get_response.get_json(), DepartmentSchema))
Beispiel #16
0
def dep_insert():
    if request.method == 'POST':
        dep_name = request.form['dep_name']
        description = request.form['description']

        my_data = Department(dep_name, description)
        db.session.add(my_data)
        db.session.commit()

        flash("Department inserted successfully")

        return redirect(url_for('department.dep_index'))
    def get_record(self, department_name, fk1=None, fk2=None):
        sql = "SELECT * FROM departments WHERE department_name=%s"
        cursor = connection.cursor()
        cursor.execute(sql, [department_name])

        record = cursor.fetchone()

        if record:
            return Department(record[0], record[1])
        else:
            raise ResourceNotFound(
                f"Department with name {department_name} not found.")
Beispiel #18
0
    def test_insert(self):
        test_entity = Department.random()
        post_response = self.client.post('/departments',
                                         data=marsh(test_entity,
                                                    DepartmentSchema))

        test_entity_id = post_response.get_json().get('data')
        test_entity.id = test_entity_id

        get_response = self.client.get(f'/departments/{test_entity.id}')
        get_response_data = get_response.get_json()
        self.assertEqual(marsh(test_entity, DepartmentSchema),
                         marsh(get_response_data, DepartmentSchema))
def load_departments():
    """
    Loads departments from connected Uber instance
    :return:
    """
    REQUEST_HEADERS = {'X-Auth-Token': cfg.uber_authkey}

    request_data = {'method': 'dept.list'}
    request = requests.post(url=cfg.api_endpoint, json=request_data, headers=REQUEST_HEADERS)
    response = json.loads(request.text)
    response = response['result'].items()

    session = models.new_sesh()
    for dept in response:
        try:
            mydept = session.query(Department).filter_by(id=dept[0]).one()

            if not mydept.name == dept[1]:
                mydept.name = dept[1]

        except sqlalchemy.orm.exc.NoResultFound:
            mydept = Department()
            mydept.id = dept[0]
            mydept.name = dept[1]
            session.add(mydept)

        request_data = {'method': 'dept.jobs', "params": {"department_id": dept[0]}}
        request = requests.post(url=cfg.api_endpoint, json=request_data, headers=REQUEST_HEADERS)
        dept_details = json.loads(request.text)

        # this checks if changed before updating because my memory tells me
        # fewer changed records makes the SQL commit faster
        if not mydept.is_shiftless == dept_details['result']['is_shiftless']:
            mydept.is_shiftless = dept_details['result']['is_shiftless']
            
    session.commit()
    session.close()
    return
    def add_department(self, fields: str):
        ref_id = generate_uuid()

        department = Department(ref_id=ref_id, **fields, created_at=get_current_time(), updated_at=get_current_time())
        db.session.add(department)

        try:
            db.session.commit()
        except Exception as e:
            print(str(e.orig))
            error_orig = str(e.orig).replace("(", "").replace(")", "").split(",")[1].strip().replace("'", "").replace('"', '').split(":")[0]
            raise IntegrityError(message=error_orig)

        return department
Beispiel #21
0
    def post(self):
        """Adds a department to the database.

        Returns:
            Department's id using marshal or
            aborts with 404.
        """

        try:
            raw_data = lomarsh(request.form, DepartmentSchema)
            raw_data['id'] = None
            return Operator.insert(Department(**raw_data))
        except IntegrityError:
            abort(400)
Beispiel #22
0
def create_data(session: Session):
    department1_id = uuid.uuid4().hex
    department2_id = uuid.uuid4().hex
    department1 = Department(id=department1_id,
                             title='Биология и Общая генетика')
    department2 = Department(id=department2_id, title='Биотехнология')
    session.add(department1)
    session.add(department2)

    mypath = "C:/Users/Andrey/Pictures/PNG"
    onlyfiles = listdir(mypath)
    added_objects = []

    for obj in onlyfiles:
        splited_obj = obj.split('_')
        if splited_obj[0] in added_objects:
            continue
        obj_id = uuid.uuid4().hex
        new_object = Object(id=obj_id,
                            title=splited_obj[0],
                            department_id=department1_id)
        session.add(new_object)
        for fl in onlyfiles:
            splited_fl = fl.split('_')
            zoom_fl = splited_fl[1].split('.')
            if fl.find(splited_obj[0]) != -1:
                fl_id = uuid.uuid4().hex
                new_file = File(id=fl_id,
                                type='image',
                                url=fl,
                                zoom=zoom_fl[0],
                                object_id=obj_id)
                session.add(new_file)
        added_objects.append(splited_obj[0])

    session.commit()
    session.close()
Beispiel #23
0
 def setUp(self):
     app.config.from_object(TestConfiguration)
     self.app = app.test_client()
     db.create_all()
     db.session.add(Department(id=10001, name='Test Department'))
     db.session.add(
         Employee(name='Steven Gray',
                  department_id=10001,
                  date_of_birthday=date(1997, 10, 1),
                  salary=Decimal(1000)))
     db.session.add(
         Employee(name='John Spins',
                  department_id=10001,
                  date_of_birthday=date(1997, 5, 11),
                  salary=Decimal(3000)))
     db.session.commit()
Beispiel #24
0
 def test_update(self):
     self.assertEqual(
         crud.Departments.update(10001, 10002, 'UpdatedDepartment'),
         Department(id=10002,
                    name='UpdatedDepartment',
                    employees=[
                        Employee(id=1,
                                 name='Steven Gray',
                                 department_id=10002,
                                 date_of_birthday=date(1997, 10, 1),
                                 salary=Decimal(1000)),
                        Employee(id=2,
                                 name='John Spins',
                                 department_id=10002,
                                 date_of_birthday=date(1997, 5, 11),
                                 salary=Decimal(3000))
                    ]))
Beispiel #25
0
    def test_get_all(self):

        self.assertEqual(crud.Departments.get_all(), ([
            Department(id=10001,
                       name='Test Department',
                       employees=[
                           Employee(id=1,
                                    name='Steven Gray',
                                    department_id=10001,
                                    date_of_birthday=date(1997, 10, 1),
                                    salary=Decimal(1000)),
                           Employee(id=2,
                                    name='John Spins',
                                    department_id=10001,
                                    date_of_birthday=date(1997, 5, 11),
                                    salary=Decimal(3000))
                       ])
        ], [(Decimal(2000), 10001)]))
Beispiel #26
0
def digest_file(filename, db, conn):
    data = dataSet('data/csv/' + filename)
    fcq_data = list(map(Fcq().sanitize_from_raw, data.raw_data))
    for model in [Department(), Course(), Instructor()]:
        sanitized_data = list(map(model.sanitize_from_raw, fcq_data))
        sanitized_data = list({v['id']: v for v in sanitized_data}.values())
        modeltable = model.__class__.__name__
        result = r.db(db).table(modeltable).insert(sanitized_data).run(conn)
        inserted = result['inserted']
        errors = result['errors']
        logging.info("{0} Inserted \t {1} \t Skipped {2}".format(modeltable.ljust(12), inserted, errors))
    result = r.db(db).table('Fcq').insert(fcq_data).run(conn)
    inserted = result['inserted']
    errors = result['errors']
    logging.info("{0} \t Inserted {1}".format(filename.ljust(12), inserted))
    if errors:
        first_error = result['first_error']
        logging.warn("{0} Errors inserting fcqs. First Error:\n{1}".format(errors, first_error))
Beispiel #27
0
    def add(dep_id, name):
        """
        Adds new department

        :param dep_id: The unique number of department
        :param name: Department`s name
        :return: New department that has been added
        :rtype: Department
        """
        try:
            department = Department(id=dep_id, name=name)
        except:
            logger.debug(f'Department {dep_id} is exist, it can`t be added')
            raise AttributeError
        db.session.add(department)
        db.session.commit()
        logger.debug(f'Department {dep_id} was added')
        return department
def create():

    try:
        input_json_data = request.get_json()
        db.create_all()
        db.session.commit()
        if not input_json_data:
            return {"message": "No input data provided"}, 400
        new_category = input_json_data['category']
        new_department = input_json_data['department']
        department_results = Department.query.filter(
            Department.department == new_department)
        #   validation of department details
        for temp in department_results:
            string_val = temp.serialize()
            if (new_department == string_val.get('department')) and (
                    new_category == string_val.get('category')):
                data = {
                    'Inserting Data': 'Failure',
                    'Error': "Department and Category have been already exists"
                }
                resp = jsonify(data), 205
                return resp

        #   assign department details to Department model
        department = Department(
            department=input_json_data['department'],
            department_id=Sequence('user_id_seq').next_value(),
            category=input_json_data['category'],
            details=input_json_data['details'])
        db.session.add(department)
        db.session.commit()
        data = {'create': 'success', 'department_id': department.department_id}
        resp = jsonify(data), 201
    except Exception as e:
        data = {'create': 'fail'}
        resp = jsonify(data), 500
        print(e)
    return resp
Beispiel #29
0
    def _get_data(self):
        from dal.dao import Dao
        from tests.ledger_data.test_data import invoices_q2_pre_query

        from models.employee import Employee
        from models.department import Department
        from models.grant_admin import GrantAdmin
        from models.invoice import Invoice
        from models.assignment import Assignment

        dao = Dao(db_path=self.db_path, stateful=True)
        self._emp_rex = Employee.get_all(dao)
        self._dept_rex = Department.get_all(dao)
        self._grant_admin_rex = GrantAdmin.get_all(dao)
        invoices_unpaid = Invoice.get_rex(dao)
        # invoices_unpaid = invoices_q2
        self._invoices_sent = [
            invoice for invoice in invoices_unpaid if invoice.sent
        ]
        self._invoices_unsent = [
            invoice for invoice in invoices_unpaid if not invoice.sent
        ]
        self._asn_rex = Assignment.get_billables(dao)
        dao.close()
Beispiel #30
0
from models.grade import Grade
from models.course import Course
from models.instructor import Instructor
from models.department import Department
from handlers.not_found_handler import NotFoundHandler
import logging

settings = {
    'cookie_secret': 'PqITv9b7QUyoAUUcgfRtReoZIXjQrEKKk9fpQpGu6MU=',
    'template_path': 'templates/',
    'static_path': 'static/',
    'grade': Grade(),
    'fcq': Fcq(),
    'course': Course(),
    'instructor': Instructor(),
    'department': Department(),
    'default_handler_class': NotFoundHandler,
    'ui_modules': {
        'chart_overtime': LineChartModule,
        'fcq_card': FcqCardModule
    }
}


def initialize_settings():
    settings['debug'] = options.debug
    settings['autoreload'] = options.debug
    settings['site_port'] = options.port
    database_name = options.database_name
    database_port = options.database_port
    database_host = options.database_host
Beispiel #31
0
 def add_dept(self):
     self.view.add_dept(Department())