Esempio n. 1
0
 def test_company_model_creation_2(self):
     c = Company.Company(*TestModels.test_company)
     db.session.add(c)
     db.session.commit()
     result = Company.find_by_id(100)
     # company was found
     assert (len(result) > 0)
Esempio n. 2
0
 def test_callingGetEmployeesReturnsListOfDicts(self):
     Employee.objects.filter = mock.MagicMock()
     company = Company()
     company.pk = 98
     employee_one = Employee()
     employee_one.pk = 12
     employee_one.user = User()
     employee_one.user.first_name = 'Fornavn'
     employee_one.user.last_name = 'Efternavn'
     employee_one.company = company
     employee_two = Employee()
     employee_two.pk = 13
     employee_two.user = User()
     employee_two.user.first_name = 'Fornavn'
     employee_two.user.last_name = 'Efternavn'
     employee_two.company = company
     Employee.objects.filter.return_value = [employee_one, employee_two]
     employee_one.getMyEmployees = mock.MagicMock()
     employee_one.getMyEmployees.return_value = []
     employee_list = employee_one.getEmployees()
     self.assertEquals(2, len(employee_list))
     self.assertTrue(isinstance(employee_list[0], dict))
     self.assertTrue(isinstance(employee_list[0]['manager'], Employee))
     self.assertEquals(employee_list[0]['manager'].pk, 12)
     self.assertTrue(isinstance(employee_list[0]['employees'], list))
     self.assertEquals(employee_list[0]['manager'].user.first_name,
                       'Fornavn')
     self.assertEquals(employee_list[0]['manager'].user.last_name,
                       'Efternavn')
Esempio n. 3
0
    def setUp(self):
        database_name = 'capstone_test'
        database_path = 'postgresql://jaimeaznar@{}/{}'.format(
            'localhost:5432', database_name)
        self.app = create_app()
        self.app.config['WTF_CSRF_ENABLED'] = False
        self.client = self.app.test_client
        setup_db(self.app, database_path)

        db.session.close()
        db.drop_all()
        db.create_all()

        # mock company
        self.company = Company(name='test company',
                               city='test city',
                               state='test state',
                               address='test address',
                               phone='12345')
        self.company.insert()

        # mock product
        self.product = Product(name='test product',
                               image='static/img/tomahawk.jpg',
                               description='test description',
                               company_id=1)
        self.product.insert()
Esempio n. 4
0
    def test_f_expression_update_attribute(self):
        # F expressions can be used to update attributes on single objects
        test_gmbh = Company.objects.get(name='Test GmbH')
        self.assertEqual(test_gmbh.num_employees, 32)
        test_gmbh.num_employees = F('num_employees') + 4
        test_gmbh.save()
        test_gmbh = Company.objects.get(pk=test_gmbh.pk)
        self.assertEqual(test_gmbh.num_employees, 36)
        
        # F expressions cannot be used to update attributes which are
        # foreign keys, or attributes which involve joins.
        test_gmbh.point_of_contact = None
        test_gmbh.save()
        self.assertEqual(test_gmbh.point_of_contact, None)
        self.assertRaises(ValueError,
                          setattr,
                          test_gmbh, 'point_of_contact', F('ceo'))

        test_gmbh.point_of_contact = test_gmbh.ceo
        test_gmbh.save()
        test_gmbh.name = F('ceo__last_name')
        self.assertRaises(FieldError,
                          test_gmbh.save)
        
        # F expressions cannot be used to update attributes on objects
        # which do not yet exist in the database
        acme = Company(name='The Acme Widget Co.', num_employees=12, 
                       num_chairs=5, ceo=test_gmbh.ceo)
        acme.num_employees = F('num_employees') + 16
        self.assertRaises(TypeError,
                          acme.save)
Esempio n. 5
0
	def test_callingGetEmployeesReturnsListOfDicts(self):
		Employee.objects.filter = mock.MagicMock()
		company = Company()
		company.pk = 98
		employee_one = Employee()
		employee_one.pk = 12
		employee_one.user = User()
		employee_one.user.first_name = 'Fornavn'
		employee_one.user.last_name = 'Efternavn'
		employee_one.company = company
		employee_two = Employee()
		employee_two.pk = 13
		employee_two.user = User()
		employee_two.user.first_name = 'Fornavn'
		employee_two.user.last_name = 'Efternavn'
		employee_two.company = company
		Employee.objects.filter.return_value = [employee_one, employee_two]
		employee_one.getMyEmployees = mock.MagicMock()
		employee_one.getMyEmployees.return_value = []
		employee_list = employee_one.getEmployees()
		self.assertEquals(2, len(employee_list))
		self.assertTrue(isinstance(employee_list[0], dict))
		self.assertTrue(isinstance(employee_list[0]['manager'], Employee))
		self.assertEquals(employee_list[0]['manager'].pk, 12)
		self.assertTrue(isinstance(employee_list[0]['employees'], list))
		self.assertEquals(employee_list[0]['manager'].user.first_name, 'Fornavn')
		self.assertEquals(employee_list[0]['manager'].user.last_name, 'Efternavn')
Esempio n. 6
0
    def update_company(self, company):
        self.logger.debug("update_company")

        self.logger.info("saving company to database")
        self.logger.debug("company: %s", company)
        Company.update(
                code=company.code, name=company.name, nif=company.nif,
                address=company.address, city=company.city,
                state=company.state, zip_code=company.zip_code,
                phone=company.phone, contact_person=company.contact_person,
                alternative_phone=company.alternative_phone,
                fax=company.fax, email=company.email, iban=company.iban,
                bank_name=company.bank_name, payment_type=company.payment_type,
                expiration_days=company.expiration_days,
                first_payment_day=company.first_payment_day,
                second_payment_day=company.second_payment_day,
                third_payment_day=company.third_payment_day
                ).execute()

        self.logger.info("updating company to model")
        tree_iter = self.get_iter_from_selected_row(company.code)
        self.companies_model.set(
                tree_iter,
                [self.CODE_COLUMN, self.NAME_COLUMN, self.NIF_COLUMN],
                [company.code, company.name, company.nif]
                )
Esempio n. 7
0
def _create_new_company(company_name):
    """
    Adds a new record for the given company name to our database.

    The plan is to use the crunchbase/glassdoor API to query for the given
    company name.
    If the calls return info on the company, happily add it
    to our database. If not, we'll assume the given company name is
    faulty, and return an appropriate message to the user.
    """
    crunchbase = CrunchbaseAPI()
    response = crunchbase.get_company_info(company_name)
    if response['exists']:
        # Create the company using the name returned by crunchbase
        # TODO: We should add our own checks.. so a search for '*' doesn't give
        # back 'Google'
        # Or maybe we shouldn't let crunchbase spellcheck?
        company_name = response['name'].lower()

        try:
            # If company already exists, redirect to it
            company = Company.objects.get(name=company_name)
            redirect('/companies/{}'.format(new_company.id))
        except Company.DoesNotExist:
            new_company = Company(name=company_name)
            new_company.save()

            logger.info('New company created: {}'.format(company_name))
            return redirect('/companies/{}'.format(new_company.id))
    else:
        return redirect('/')
Esempio n. 8
0
    def test_f_expression_update_attribute(self):
        # F expressions can be used to update attributes on single objects
        test_gmbh = Company.objects.get(name='Test GmbH')
        self.assertEqual(test_gmbh.num_employees, 32)
        test_gmbh.num_employees = F('num_employees') + 4
        test_gmbh.save()
        test_gmbh = Company.objects.get(pk=test_gmbh.pk)
        self.assertEqual(test_gmbh.num_employees, 36)

        # F expressions cannot be used to update attributes which are
        # foreign keys, or attributes which involve joins.
        test_gmbh.point_of_contact = None
        test_gmbh.save()
        self.assertEqual(test_gmbh.point_of_contact, None)
        self.assertRaises(ValueError, setattr, test_gmbh, 'point_of_contact',
                          F('ceo'))

        test_gmbh.point_of_contact = test_gmbh.ceo
        test_gmbh.save()
        test_gmbh.name = F('ceo__last_name')
        self.assertRaises(FieldError, test_gmbh.save)

        # F expressions cannot be used to update attributes on objects
        # which do not yet exist in the database
        acme = Company(name='The Acme Widget Co.',
                       num_employees=12,
                       num_chairs=5,
                       ceo=test_gmbh.ceo)
        acme.num_employees = F('num_employees') + 16
        self.assertRaises(TypeError, acme.save)
Esempio n. 9
0
    def create(self, request, **kwargs):
        serializer = CompanySerializer(data=request.data)
        if serializer.is_valid():
            user = save_user(request.data, UserPermissions.IS_COMPANY)
            city = City(**request.data["city"])
            company = Company(
                name=request.data["name"],
                type=UserType.COMPANY,
                address=request.data["address"],
                identityDoc=request.data["identityDoc"],
                phone=request.data["phone"],
                city=city,
                user=user,
            )

            company.save()
            return Response(
                {
                    "status": "SUCCESS",
                    "msg_status": "Estabecimiento creado satisfactoriamente. Puede ingresar con su nueva contrasena.",
                }
            )
        else:
            messages = []
            make_error(serializer.errors.values(), messages)
            return Response({"status": "FAILURE", "msg_status": messages})
Esempio n. 10
0
    def create_company(jwt):
        request_value = request.get_json()
        if request_value is None:
            abort(400)

        properties = ['name', 'description', 'imageBase64', 'state', 'city']
        for prop in properties:
            if prop not in request_value:
                abort(400)

        if request_value['name'] is None:
            abort(400)

        if request_value['state'] is None or request_value['city'] is None:
            abort(400)

        company = Company(
            request_value['name'],
            request_value['description'],
            request_value['imageBase64'],
            request_value['state'],
            request_value['city']
        )
        company.insert()

        return jsonify({
            'status_code': 200,
            'company': company.format(),
            'message': 'The company was successfully created',
            'success': True,
        })
Esempio n. 11
0
def enterpriseInfoSave(req):
    """
    企业信息保存!
    :param req:
    :return:
    """
    enterpriseType = req.POST["enterpriseType"]
    enterprise = Company.objects.filter(companyName=enterpriseType)
    if req.POST["radioVal"] == "1":
        isShow = True
    else:
        isShow = False
    if enterprise.exists():
        return HttpResponse(2)
    companyId = uuid.uuid1()  # 生成36位随机数
    try:
        with transaction.atomic():  # 事务的使用,包含的内容一旦出错,则保存的信息全部撤回
            company = Company(companyId=companyId,
                              companyName=enterpriseType,
                              isShow=isShow)
            company.save()
            i = 0
            while i < len(req.POST) - 2:
                enterpriseInfoNum = "enterprise" + str(i)
                enterpriseInfo = req.POST[enterpriseInfoNum]
                dataType = DataType(dataTypeId=uuid.uuid1(),
                                    companyId_id=companyId,
                                    dataName=enterpriseInfo)
                dataType.save()
                i = i + 1
                print enterpriseInfo
            return HttpResponse(1)
    except Exception as err:
        print err
        return HttpResponse(0)
Esempio n. 12
0
def admin_add_company():
    data = json.loads(request.data)
    linkedin_id = data.get('linkedin_id')
    name = data.get('name')
    crunchbase_url = data.get('crunchbase_url')
    if not linkedin_id or linkedin_id == "":
        linkedin_id = gen_fake_linkedin_id()
    company = Company(linkedin_id, name)
    company.crunchbase_url = crunchbase_url
    db.session.add(company)
    db.session.commit()
    print ' adding new company for rescraping: ' + name.encode('utf8') + ' --> ' + linkedin_id
    print '              new company id = ' + str(company.id)
    if crunchbase_url and crunchbase_url != "":
        mode = FROM_URL_RESCRAPE_MODE
    else:
        mode = DEFAULT_RESCRAPE_MODE
    rescrape_companies_from_list([company], mode=mode)
    # TODO F**K F**K F**K F**K HEROKU for not allowing > 1 thread
    # WHAT IN THE F*****G F**K.....
    #times_left = 100
    #while not company.is_feed_ready and times_left >= 0:
    #    times_left -= 1 # this is to make sure this doesn't become an infinite for-loop
    #    time.sleep(5)
    #    db.session.commit() # Retarded way to start a new transaction because F**K sqlalchemy...
    #    print '       ... waiting for scraper callback --> is_feed_ready ' + str(company.is_feed_ready)
    resp = json.dumps({'status': 'ok', 'company_id': company.id})
    return resp 
Esempio n. 13
0
    def add_company(payload):
        body = request.json

        # Need to have name and website keys in body
        if not all([x in body for x in ['name', 'website']]):
            abort(422)

        # Here we want this to return None otherwise another company has that name
        # If you don't handle this way, function works, but unittests catches the
        # print statement below in the 'except Exception as e' block and clutters
        # up the unittests output.
        duplicate_name = Company.query.filter_by(
            name=body['name'].strip()).one_or_none()
        if duplicate_name:
            abort(422)
        duplicate_website = Company.query.filter_by(
            website=body['website'].strip()).one_or_none()
        if duplicate_website:
            abort(422)

        try:
            new_co = Company(name=body['name'].strip(),
                             website=body['website'].strip())
            new_co.insert()
        except Exception as e:
            print(f'Exception in add_company(): {e}')
            abort(422)  # Syntax is good, can't process for semantic reasons

        return jsonify({"id": new_co.id, "success": True})
Esempio n. 14
0
 def extract_company_info(self, company_url, company_name, position):
     if not company_url:
         return
     res = self.send_requests(company_url)
     document = get_document(res.text)
     name = get_simple_dom(document, './/div[@class="tHeader tHCop"]/div[contains(@class, "in")]/h1/@title')
     # 使用前程无忧搭建自己公司门户的公司
     if not name:
         return Company.insert(name=company_name,
                               uniqueId=self.get_company_unique_id(company_url),
                               position=position,
                               companyUrl=company_url,
                               site=self.task.site).execute()
     # 普通公司
     base_info = get_simple_dom(document, './/p[@class="ltype"]/text()', '')
     infos = base_info.split('|')
     nature = infos[0].strip() if len(infos) > 0 else ''
     scale = infos[1].strip() if len(infos) > 1 else ''
     category = infos[2].strip() if len(infos) > 2 else ''
     position_info = get_richtext(document, './/div[@class="inbox"]/p[@class="fp"]')
     position_info = position_info.strip().replace('公司地址:', '')
     position = re.sub('(\(邮编:.*\))', '', position_info) or ''
     position = position.strip()
     description = get_richtext(document, './/div[@class="con_txt"]')
     return Company.insert(name=name,
                           nature=nature,
                           scale=scale,
                           category=category,
                           position=position,
                           description=description,
                           uniqueId=self.get_company_unique_id(company_url),
                           companyUrl=company_url,
                           site=self.task.site).execute()
Esempio n. 15
0
def create_company(request):
    if request.method == 'GET':
        template = 'new_position/new_company.html'
        form = CompanyForm()
        return render(
            request,
            template,
            {
                'form': form
            }
        )
    elif request.method == 'POST':
        form = CompanyForm(request.POST)
        if form.is_valid():
            company = Company(
                name = form.cleaned_data.get('name'),
                tag_name = form.cleaned_data.get('tag_name'),
                product = form.cleaned_data.get('product'),
                why_us = form.cleaned_data.get('why_us'),
                traction = form.cleaned_data.get('traction'),
                funding = form.cleaned_data.get('funding'),
                size = form.cleaned_data.get('size'),
                last_active = datetime.now(),
                market = form.cleaned_data.get('market'),
                company_link = form.cleaned_data.get('company_link'),
            )
            company.save()

            return render(
                request,
                'landing_pages/index.html',
            )
Esempio n. 16
0
 def delete(id):
     entity = Company.get(id)
     if(entity is None):
         raise ValueError("Company does not exists")
     else:
         entity.active = False
         Company.save(entity)
Esempio n. 17
0
class Simulation(object):

    def __init__(self, aggregator, strategy, reserved_resources, sleep_time=0):


        self.aggregator = aggregator

        self.strategy = strategy
# 2 year warm up, and 10 year run
        self.stats = Stats(24, 120)
        self.company = Company(20, reserved_resources, self.strategy, self.stats)
        self.sleep_time = sleep_time
        self.reserved_resources = reserved_resources

        print(sim_to_key(self))

    def run(self):

        for t in range(self.stats.runs):

            self.stats.start_month()

            projects = [generate_project() for _ in range(sample.project_count())]
            self.company.decide_projects(projects)

            used_resources = self.company.workflow.work()

            self.stats.end_month(used_resources, self.company.workflow.average_workload())

            if self.sleep_time > 0:
                sleep(self.sleep_time)

            #print(self.stats.monthly_report())

        self.aggregator.add_result(self)
Esempio n. 18
0
    def test_company_repr_1(self):
        """Test __repr__ methond of company class"""

        example1 = Company("id", "name", "summary", "people",
                           "city", "finorgs", "twitter", "website", "logo")

        self.assertEqual(example1.__repr__(), "<Company 'name'>")
Esempio n. 19
0
    def test_company_repr_3(self):
        """Test __repr__ methond of company class"""

        example3 = Company("id3", "name3", "summary3", "people3",
                           "city3", "finorgs3", "twitter3", "website3", "logo3")

        self.assertEqual(example3.__repr__(), "<Company 'name3'>")
Esempio n. 20
0
    def test_company_model_1(self):
        """Test adding Company objects to and deleting Company objects from the db"""

        with app.test_request_context():
            example1 = Company("id", "name", "summary", "people",
                               "city", "finorgs", "twitter", "website", "logo")
            example2 = Company("id2", "name2", "summary2", "people2",
                               "city2", "finorgs2", "twitter2", "website2", "logo2")

            companies1 = db.session.query(Company).all()

            db.session.add(example1)
            db.session.add(example2)
            db.session.commit()
            companies2 = db.session.query(Company).all()

            self.assertTrue(example1 in companies2)
            self.assertTrue(example2 in companies2)
            self.assertEqual(len(companies2), len(companies1) + 2)

            db.session.delete(example1)
            db.session.delete(example2)
            db.session.commit()
            companies3 = db.session.query(Company).all()

            self.assertTrue(example1 not in companies3)
            self.assertTrue(example2 not in companies3)
            self.assertEqual(len(companies1), len(companies2) - 2)
Esempio n. 21
0
 def create(self, validated_data):
     company = Company(
         name=validated_data['name'],
         alias=validated_data['name'].lower(),
         active=validated_data['active']
     )
     company.save()
     return company
Esempio n. 22
0
	def test_callingGetEmployeesCallsFilterOnEmployeeWithCompanyPkAsArgumentAndIsMangerEqualToTrue(self):
		employee = Employee()
		company = Company()
		company.pk = 8
		employee.company = company
		with mock.patch.object(Employee, 'objects') as query_mock:
			employee.getEmployees()
			query_mock.filter.assert_called_with(company__pk=company.pk, is_manager=True)
Esempio n. 23
0
def createDB():
	print "Creating the initial db"
	Company.create_table()
	NewsSource.create_table()
	News.create_table()
	Price.create_table()
	OpinionAPI.create_table()
	OpinionAPIResponse.create_table()
Esempio n. 24
0
def create():
    try:
        Company.create_company(request.json)
        company = Company.find_by_id(request.json["company_id"])
        return jsonify(company), 201

    except Exception as e:
        return jsonify(error="couldn't add game"), 400
Esempio n. 25
0
 def test_callingGetAvailableSchemesCallsFilterOnCompetenceFieldCollectionToCompanyRelationWithCompanyPkAsArgument(
         self):
     company = Company()
     company.pk = 8
     with mock.patch.object(CompetenceFieldCollectionToCompanyRelation,
                            'objects') as query_mock:
         company.getAvailableSchemes()
         query_mock.filter.assert_called_with(company__pk=company.pk)
Esempio n. 26
0
def setup_tbl():
    Person.create_table(fail_silently=True)
    Company.create_table(fail_silently=True)
    Payment.create_table(fail_silently=True)
    Tariff.create_table(fail_silently=True)
    Point.create_table(fail_silently=True)
    Bike.create_table(fail_silently=True)
    ReservationState.create_table(fail_silently=True)
    Reservation.create_table(fail_silently=True)
Esempio n. 27
0
    def delete_company(self, company):
        self.logger.debug("delete_company")

        self.logger.info("deleting company from database")
        Company.delete().where(Company.code == company.code).execute()

        self.logger.info("removing company from model")
        tree_iter = self.get_iter_from_selected_row(company.code)
        self.companies_model.remove(tree_iter)
Esempio n. 28
0
def get_ftse_companies(url):
    companies = []
    table = pd.read_html(url)[3]
    for index, row in table.iterrows():
        company = Company(row['EPIC'])
        company.name = row['Company']
        company.sector = row[
            'FTSE Industry Classification Benchmark sector[12]']
        companies.append(company)
    return companies
Esempio n. 29
0
 def company_insert(self, request):
     
     if request.from_datastore:
         my_company = request
     else:
         my_company = Company(parent=main.PARENT_KEY, name=request.name, bio=request.bio, logo=request.logo,
                              jobs=request.jobs, majors=request.majors, table=request.table, website=request.website)
         
     my_company.put()
     return my_company
Esempio n. 30
0
 def test_callingGetEmployeesCallsFilterOnEmployeeWithCompanyPkAsArgumentAndIsMangerEqualToTrue(
         self):
     employee = Employee()
     company = Company()
     company.pk = 8
     employee.company = company
     with mock.patch.object(Employee, 'objects') as query_mock:
         employee.getEmployees()
         query_mock.filter.assert_called_with(company__pk=company.pk,
                                              is_manager=True)
Esempio n. 31
0
    def test_company_dictionary_2(self):
        """Test dictionary method of company class"""

        example1 = Company("id", "name", "summary", "people",
                           "city", "finorgs", "twitter", "website", "logo")
        dict_rep = example1.dictionary()

        self.assertEqual(dict_rep['financial_orgs'], "finorgs")
        self.assertEqual(dict_rep['twitter'], "twitter")
        self.assertEqual(dict_rep['website'], "website")
        self.assertEqual(dict_rep['logo_url'], "logo")
Esempio n. 32
0
 def post(self):
    if(Company.exists(request.form['name'])):
       return jsonify(message='Company exists')
    else:
       company = Company()
       company.name = request.form['name']
       company.tin = request.form['tin']
       company.address = request.form['address']
       db.session.add(company)
       db.session.commit()
       return jsonify(company.serialize)
Esempio n. 33
0
    def setUp(self):
        self.region = Region(name="test_region")
        self.region.save()

        self.company = Company(code="1001", name="test_company", region=self.region)
        self.company.save()
        self.company2 = Company(code="1002", name="test_company_2", region=self.region)
        self.company2.save()

        self.store = Store(code="10011001", name="test_store", company=self.company)
        self.store.save()
Esempio n. 34
0
    def test_company_repr_2(self):
        """Test __repr__ methond of company class"""

        example2 = Company("id1", "Wetpaint",
                           ("Wetpaint is a technology platform company that uses its proprietary"
                            + " state-of-the-art technology and expertise in social media to build"
                            + " and monetize audiences for digital publishers."), "person1",
                           "San Francisco", "Youniversity Ventures", "wetpaint",
                           "http://wetpaint.com", "logo_url")

        self.assertEqual(example2.__repr__(), "<Company 'Wetpaint'>")
Esempio n. 35
0
    def test_company_dictionary_1(self):
        """Test dictionary method of company class"""

        example1 = Company("id", "name", "summary", "people",
                           "city", "finorgs", "twitter", "website", "logo")
        dict_rep = example1.dictionary()

        self.assertEqual(dict_rep['company_id'], "id")
        self.assertEqual(dict_rep['name'], "name")
        self.assertEqual(dict_rep['summary'], "summary")
        self.assertEqual(dict_rep['people'], "people")
        self.assertEqual(dict_rep['city'], "city")
Esempio n. 36
0
 def delete(self, request, company_id):
     """
     Handling DELETE method.
     args
         request: Request to View.
         company_id: id of company to be deleted.
     :return: HttpResponse with code 201 if company is deleted.
     """
     company = Company()
     company.delete_company(company_id)
     data = serializers.serialize("json", Company.get_company())
     return HttpResponse(data)
Esempio n. 37
0
def scrape_companies_data(
    company_names: List[str],
    use_cache: bool = False,
    n: int = 2147483647,
    skip_companies: Set[str] = set()
) -> Tuple[List[Company], List[FailedCompanyError]]:
    errors = []
    output_data = []

    for i, company_name in enumerate(company_names):
        if i >= n:
            break

        if company_name in skip_companies:
            print(f'[INFO] Skip scraping {company_name}')
            continue

        try:
            company_id = company_name.replace(' ', '_').lower()
            company = Company(id=company_id)
            overview_url, reviews_url = scraper.get_glassdoor_urls(
                company_name)
            print('[INFO]', company_name, overview_url, reviews_url)
            if overview_url is None or reviews_url is None:
                raise Exception(
                    f'Cannot find both URLs for "{company_name}": {overview_url} {reviews_url}'
                )

            reviews_data = scraper.scrape(reviews_url,
                                          f'{company_name}_reviews.html',
                                          scraper.get_reviews_data)
            overview_data = scraper.scrape(overview_url,
                                           f'{company_name}_overview.html',
                                           scraper.get_overview_data)
            data = {
                'name': company_name,
                'overview_url': overview_url,
                'reviews_url': reviews_url,
                'linkedin_url': scraper.get_linkedin_url(company_name),
            }
            data.update(reviews_data)
            data.update(overview_data)
            company.update_data(data)
            output_data.append(company)
        except Exception as e:
            print(f'[FAIL] caught exception when parsing "{company_name}"')
            errors.append(
                FailedCompanyError(
                    company_name=company_name,
                    exception=e,
                ))

    return output_data, errors
Esempio n. 38
0
 def test_company_model_creation_4(self):
     result = Company.Company.query.all()
     d = Company.Company(*TestModels.test_company)
     db.session.add(d)
     db.session.commit()
     e = Company.Company(*TestModels.test_company)
     try:
         db.session.add(e)
         db.session.commit()
         assert (False)
     except Exception as e:
         db.session.rollback()
Esempio n. 39
0
def input_companies():
  ''' Creates the company models for each S&P 500 company'''
  
  yahoo_data = yahooDataRetriever.get_dict_500_companies(name_file)
  
  for i in yahoo_data.keys():
    if len(Company.objects.filter(ticker = i)) > 0:
      continue
    c = Company()
    c.name = yahoo_data.get(i)
    c.ticker = i
    c.save()
    print "## Saved Company Object for: " + i
Esempio n. 40
0
 def test_company_model_creation_3(self):
     # first record
     c = Company.Company(*TestModels.test_company)
     db.session.add(c)
     # second record
     new_comp = list(TestModels.test_company)
     new_comp[0] = 200
     d = Company.Company(*new_comp)
     db.session.add(d)
     db.session.commit()
     result = Company.Company.query.all()
     # two records to Company so far
     assert (len(result) == 2)
Esempio n. 41
0
    def post(self):
            newCompany = Company()
            newCompany.name = self.request.get("name")
            newCompany.cgpa = self.request.get("cgpa")
            newCompany.desc = self.request.get("desc")
            newCompany.sal = self.request.get("sal")
            newCompany.date = self.request.get("date")
            newCompany.lastDate = self.request.get("lastDate"); 
            newCompany.put()
	    self.redirect("/admin")       
def process_company_file(data_file):
    workbook = xlrd.open_workbook(settings.MEDIA_ROOT+'/'+data_file.uploaded_file.name)
    worksheets = workbook.sheet_names()
    data_file.number_of_sheets = len(worksheets)
    data_file.save()
    for worksheet_name in worksheets:
        worksheet = workbook.sheet_by_name(worksheet_name)
        num_rows = worksheet.nrows - 1
        curr_row = 0            
        while curr_row < num_rows:
            curr_row += 1                
            company_name = worksheet.cell_value(curr_row, 0)
            industry = worksheet.cell_value(curr_row, 1)
            isin = worksheet.cell_value(curr_row, 2)
            bse_code = worksheet.cell_value(curr_row, 3)
            industry, created = Industry.objects.get_or_create(industry_name=industry)
            industry.created_by = data_file.uploaded_by
            industry.save()
            try:
                company = Company.objects.get(isin_code=isin)
            except:
                try:
                    company = Company.objects.get(company_name=company_name)    
                except:
                    company = Company()
            company.isin_code = isin
            if bse_code:
                company.BSE_code = int(bse_code)
            company.industry = industry
            company.company_name = company_name
            company.created_by = data_file.uploaded_by
            company.save()
    data_file.processing_completed = True
    data_file.save()
Esempio n. 43
0
 def save_instance_form(self, form, user):
     company = Company()
     company.nit = form.cleaned_data['nit']
     company.name = form.cleaned_data['name']
     company.location = form.cleaned_data['location']
     company.website = form.cleaned_data['website']
     company.email = form.cleaned_data['email']
     company.phone = form.cleaned_data['phone']
     company.save()
     user.company = company
     user.save()
    def test_poly_base(self):
        db.create_all()

        dealer1 = Dealer(1)
        dealer10 = Dealer(10)
        company1 = Company(id=1, dealer=dealer1)

        assert company1.dealer == dealer1
        assert company1.dealer_id == 1

        company1.dealer_id = 10

        assert company1.dealer == dealer10

        assert repr(company1) == '<Company id: 1>'
Esempio n. 45
0
 def get(self, request, company_id=None):
     """
     Handling GET method.
     :args
         request: Request to View.
         company_id: id of company to be returned.
     :return: HttpResponse with company fields and values by id. 
     If company_id is 'None' returns all companies with their fields and values.
     """
     if not company_id:
         data = serializers.serialize("json", Company.get_company())
         return HttpResponse(data)
     company = Company.get_company(company_id)
     company = model_to_dict(company)
     return HttpResponse(json.dumps({"company": company}))
Esempio n. 46
0
def create_company():
    search_form = SearchForm()
    form = CreateCompanyForm()
    if request.method == "POST":
        comp_obj = Company()
        comp_obj.name = form.company_name.data
        db.session.add(comp_obj)
        db.session.commit()
        flash("Create company success")
        return render_template("create_company.html", search_form=search_form, form=form)
    else:
        if current_user.role != 3:
            flash("You have no permission")
            return redirect(url_for("main"))
        return render_template("create_company.html", search_form=search_form, form=form)
Esempio n. 47
0
def get_Company():

    ##### Create a Company and retrieve all Companies ######

    if request.method == 'POST':
        body = request.get_json()
        if body is None:
            raise APIException(
                "You need to specify the request body as a json object",
                status_code=400)
        if 'email' not in body or body['email'] == '':
            raise APIException('You need to specify the email',
                               status_code=400)
        if 'password' not in body:
            body['password'] = None
        if "address" not in body:
            raise APIException('You need to specify the address',
                               status_code=400)
        if "company_name" not in body:
            raise APIException('You need to specify the company_name',
                               status_code=400)
        if "company_description" not in body:
            raise APIException('You need to specify the description',
                               status_code=400)

        _company = Company.query.filter_by(email=body['email']).first()
        if (_company is not None):
            raise APIException("Company already registered")

        company1 = Company(
            email=body['email'],
            password=body['password'],
            address=body['address'],
            company_name=body['company_name'],
            company_description=body['company_description'],
        )
        db.session.add(company1)
        db.session.commit()
        return jsonify(company1.serialize()), 200

    #### GET REQUEST METHOD #####

    if request.method == 'GET':
        all_company = Company.query.all()
        all_company = list(map(lambda x: x.serialize(), all_company))
        return jsonify(all_company), 200

    return "Invalid Method", 404
Esempio n. 48
0
    def on_row_activated(self, treeview, path, column):
        self.logger.debug("on_row_activated")

        tree_iter = self.companies_model.get_iter(path)
        code = self.companies_model.get_value(tree_iter, self.CODE_COLUMN)
        company = Company.select().where(Company.code == code).get()

        column_id = column.get_sort_column_id()
        if column_id == self.REMOVE_COLUMN:
            dialog = Gtk.MessageDialog(
                    self.window, 0, Gtk.MessageType.QUESTION,
                    Gtk.ButtonsType.YES_NO,
                    "Are you sure to remove the company?"
                    )

            if dialog.run() == Gtk.ResponseType.YES:
                self.delete_company(company)

            dialog.destroy()
        elif column_id == self.DELIVERY_NOTES_COLUMN:
            DeliveryNotesManagerWindow(company=company, parent=self.window)
        elif column_id == self.INVOICE_COLUMN:
            InvoicesWindow(company=company, parent=self.window)
        else:
            self.populate_form(company)
Esempio n. 49
0
    def post(self):
        company_id = self.request.get('company_id') 
        company = Company.get_by_id(int(company_id))

        try:
            name = self.request.get('name') 
            company.name = name
        except:
            pass

        try:
            address = self.request.get('address') 
            company.address = address
        except:
            pass

        try:
            city = self.request.get('city') 
            company.city = city
        except:
            pass

        try:
            country = self.request.get('country') 
            company.country = country
        except:
            pass

        try:
            email = self.request.get('email') 
            company.email = email
        except:
            pass

        try:
            phone_number = int(self.request.get('phone_number'))
            company.phone_number = phone_number
        except:
            pass

        try:
            owner_name = self.request.get('owner_name')
            owner = Owner()
            owner.name = owner_name
            owner.company = company.key()
            owner.put()
        except:
            pass

        try:
            director_name = self.request.get('director_name')
            director = Director()
            director.name = director_name
            director.company = company.key()
            director.put()
        except:
            pass
        
        company.put()   
        self.redirect("company/" + str(company_id))
Esempio n. 50
0
def company_new():
    company = Company()
    if request.method == 'POST':
        form = CompanyForm(request.form, obj=company)
        if form.validate():
            try:
                form.populate_obj(company)
                validate_company(company)
                company.save()
                flash('Yes, empresa cadastrada com sucesso.', 'success')
                return redirect(url_for('companies.company_index'))
            except AttributeError as e:
                flash(str(e), 'warning')
    else:
        form = CompanyForm(obj=company)
    return render_template('companies/new.html', form=form)
Esempio n. 51
0
 def post(self):
     parser = reqparse.RequestParser()
     parser.add_argument('company_name', required=True)
     parser.add_argument('email', required=True)
     parser.add_argument('password', required=True)
     parser.add_argument('address_1')
     parser.add_argument('address_2')
     parser.add_argument('city')
     parser.add_argument('province')
     parser.add_argument('zipcode')
     parser.add_argument('country')
     parser.add_argument('phone')
     parser.add_argument('state', default='NOT_VERIFIED' if os.environ.get('TEST') is None else 'ACTIVE')
     company_args = parser.parse_args()
     if company_args.get('state') not in COMPANY_STATES:
         error_dict = {
             'error_message': f'Invalid state {company_args.get("state")}',
         }
         LOGGER.error(error_dict)
         return error_dict, 400
     try:
         return Company.create(**company_args)
     except IntegrityError as e:
         error_dict = {
             'error_message': e,
         }
         LOGGER.error(error_dict)
         return error_dict, 400
     except Exception as e:
         LOGGER.error(e)
Esempio n. 52
0
    def get(self, url_name):
        company = Company.all().filter('urlname = ', url_name).fetch(1)
        company = company[0]
        reviews = company.GetReviews();
	template_values = {
		'reviews': reviews,
                'company_name': company.name
	}
        self.Render(GetTemplate('company_reviews'), template_values)
Esempio n. 53
0
    def get(self, url_name):
        company = Company.all().filter('urlname = ', url_name).fetch(1)
        company = company[0]
	reviews = db.GqlQuery("SELECT * FROM Review ORDER BY date DESC")
	template_values = {
		'reviews': reviews,
                'company_name': company.name
	}
        self.Render(GetTemplate('review'), template_values)
Esempio n. 54
0
    def process_item(self, item, spider):
        if type(spider) is not spiders.info.InfoSpider:
            return item

        # process item
        company, created = CompanyModel.get_or_create(site_id=item['site_id'])
        company.update(**item).where(CompanyModel.site_id == company.site_id).execute()

        return created
Esempio n. 55
0
    def get(self,company_id):
        company = Company.get_by_id(int(company_id))

        template_values = {
            'company' : company
            }

        template = jinja_environment.get_template('owners.html')
        self.response.out.write(template.render(template_values))
Esempio n. 56
0
def load_company(session, company_data):
    company = Company(
        name=company_data.get('name'),
        website=company_data.get('website'),
        description=company_data.get('description'),
        size=company_data.get('size'),
        remote=company_data.get('allows_remote')
    )
    company.techs = [Tech(name=tech_name) for tech_name in company_data.get('stack', [])]

    company.location = Location(
        city=company_data['location'].get('city'),
        country=company_data['location'].get('country'),
        postcode=company_data['location'].get('postcode')
    )

    session.add(company)
    session.commit()
Esempio n. 57
0
def view(request, pk, slug):
    company = Company.goof(pk=pk)

    if not company.slug == slug:
        return HttpResponseRedirect(company.get_absolute_url() )

    kmz_url = reverse("kml-company", kwargs={"pk": company.pk})

    return locals()
Esempio n. 58
0
    def get(self,company_id): # apparently, it must be company_id, not something else.
        company = Company.get_by_id(int(company_id))
         
        template_values = {
            'company' : company
            }

        template = jinja_environment.get_template('company.html')
        self.response.out.write(template.render(template_values))
Esempio n. 59
0
    def post(self):
        company = Company()

        try:
            name = self.request.get('name') 
            company.name = name
        except:
            pass

        try:
            address = self.request.get('address') 
            company.address = address
        except:
            pass

        try:
            city = self.request.get('city') 
            company.city = city
        except:
            pass

        try:
            country = self.request.get('country') 
            company.country = country
        except:
            pass

        try:
            email = self.request.get('email') 
            company.email = email
        except:
            pass

        try:
            phone_number = int(self.request.get('phone_number'))
            company.phone_number = phone_number
        except:
            pass

        company.put()

        company_id = company.key().id()

        self.redirect("company/" + str(company_id))
Esempio n. 60
0
def companies():
    q = Company.all()
    q.order("datetime")
    companies = q.fetch(1000)
    duplicates = []
    for company in companies:
        if company.name in duplicates:
            db.delete(company)
        else:
            duplicates.append(company.name)