Example #1
0
    def test_competition_json(self):
        company = CompanyModel('GOL')
        expected = {
            'id': company.id,
            'name': company.name,
        }

        self.assertEqual(
            company.json(), expected,
            "The JSON export of the company is incorrect. Received {}, expected {}."
            .format(company.json(), expected))
Example #2
0
 def post(self):
     user = users.get_current_user()
     url = users.create_login_url(self.request.uri)
     url_linktext = 'Login'
     title= 'Ajouter une entreprise'
     searchkey =  self.request.get('name')
     companies_query = CompanyModel.all().order('-companydateadded')
     companies = companies_query.fetch(30)
     result = list()
     for company in companies:
         
         if company.companyname.lower().find(searchkey.lower())>=0:
             result.append(company.companyname)
         
                 
     if user:
         url = users.create_logout_url(self.request.uri)
         url_linktext = 'Logout'
     values = {
         'searchkey' : searchkey,
         'result' : result,
     'title': title,
         'user': user,
         'url': url,
         'url_linktext': url_linktext,
       }
               
     self.response.out.write(template.render('templates/searchcompany.html', values))
Example #3
0
    def get(self):
        user = users.get_current_user()
        url = users.create_login_url(self.request.uri)
        url_linktext = 'Login'
                    
        if user:
            url = users.create_logout_url(self.request.uri)
            url_linktext = 'Logout'
            raw_id = self.request.get('id')
            ido = int(raw_id)
            lentrepriseo = CompanyModel.get_by_id(ido)
            
        else:
            self.redirect(users.create_login_url(self.request.uri))
# GQL is similar to SQL
      
        
        
        values = {
            'company': lentrepriseo,
        
            'user': user,
            'url': url,
            'url_linktext': url_linktext,
        }
        self.response.out.write(template.render('templates/editcompany.html', values))
Example #4
0
    def post(self):
        user = users.get_current_user()
        if user:
         

         tagname = self.request.get('tags')
         raw_id = self.request.get('id')
         id = int(raw_id)
         lespace = EspaceModel.get_by_id(id)
         
         tag = TagModel(name =tagname , espace = lespace)
         tag.put();
         idlist = self.request.get_all('id[]')
         for idcompany in idlist:
             idc = int(idcompany)
             company = CompanyModel.get_by_id(idc)
             
             selection = SelectionModel(espace = lespace, company = company, tag = tag,
                                        selectedby =users.get_current_user()).put()

         
         values = {
             
            
	    'idlist': idlist,
	    
          }
Example #5
0
    def test_create_competition(self):
        company = CompanyModel('GOL')

        self.assertEqual(
            company.name, 'GOL',
            "The name of the company after creation does not equal the constructor argument."
        )
Example #6
0
 def delete(self):
     data = self.parser.parse_args()
     companyName = data['companyName']
     company = CompanyModel.find_by_name(companyName)
     if company:
         company.delete_from_db()
         return {'message': 'Company deleted.'}
     return {'message': 'Company not found.'}, 404
Example #7
0
 def get(self):
     user_id = get_jwt_identity()
     companyList = [company.json() for company in CompanyModel.find_all()]
     if user_id:
         return {'companyList': companyList}, 200
     return {
         'companyList': [company['name'] for company in companyList],
         'message': 'More data available if you log in.'
     }, 200
Example #8
0
    def test_delete_company(self):
        with self.app() as c:
            with self.app_context():
                CompanyModel('Azul').save_to_db()
                r = c.delete('/company/Azul')

                self.assertEqual(r.status_code, 200)
                self.assertDictEqual(d1={'message': 'Company deleted'},
                                     d2=json.loads(r.data.decode('utf-8')))
Example #9
0
    def get(self, us_employer_id):
        company = CompanyModel.find_by_us_employer_id(us_employer_id)

        if not company:
            return {
                "message": "No such company registered with this employer ID!"
            }, 404  # returns a tuple: (body, status code), (body:dictionary, status code: integer - default 200)
        else:
            return format_company_to_json(company)
Example #10
0
async def update_an_account(id_or_taxcode,
                            account: CompanyModel,
                            account_type: str = 'enterprise'):
    if account_type == 'enterprise':
        obj_company.fn_create_or_update_a_company(id_or_taxcode,
                                                  **account.dict())
        return JSONResponse(content={'message': "Updated successfully."})
    else:
        # TODO: update a personal account
        pass
Example #11
0
    def delete(self, us_employer_id):
        company = CompanyModel.find_by_us_employer_id(us_employer_id)

        if not company:
            return {
                "message": "No such company associated with this employer ID!"
            }, 404

        company.delete_from_db()
        return {"message": "company deleted!"}
Example #12
0
 def post(self):
     user = users.get_current_user()
     if user:
      company  = CompanyModel(
             companyaddedby  = users.get_current_user(),
             companyname = self.request.get('companyname'),
             companywebsite = self.request.get('companywebsite'),
             companyaddress = self.request.get('companyaddress'),
             companywilaya = self.request.get('companywilaya'),
             companydescription = self.request.get('companydescription'))
      company.put();
      emails = self.request.get_all('companymail')
      for email in emails:
         CompanyEmailsModel(email = email , company = company).put()
      tels = self.request.get_all('companytel')
      for tel in tels:
          CompanyTelModel(companytel = tel, company = company).put()     
      
      self.redirect('/')
Example #13
0
 def get(self):
     user = users.get_current_user()
     url = users.create_login_url(self.request.uri)
     url_linktext = 'Login'
     title= 'Ajouter une entreprise'        
     raw_id = self.request.get('id')
     id = int(raw_id)
     company = CompanyModel.get_by_id(id)
     tasks = TasksAboutModel.all().filter('organisme', CompanyModel.get_by_id(id)).filter('profile', UserProfileModel.getCurrent())
     values = {
         'idcompany' : id,
         'tasks' : tasks,      
         'company': company,
         'title': title,
         'user': user,
         'url': url,
         'url_linktext': url_linktext,
       }
               
     self.response.out.write(template.render('templates/loadtasksabout.html', values))  
Example #14
0
    def test_create_company(self):
        with self.app() as c:
            with self.app_context():
                r = c.post('/company/Azul')

                self.assertEqual(r.status_code, 201)
                self.assertIsNotNone(CompanyModel.find_by_name('Azul'))
                self.assertDictEqual(d1={
                    'id': 1,
                    'name': 'Azul'
                },
                                     d2=json.loads(r.data.decode('utf-8')))
Example #15
0
    def test_company_found(self):
        with self.app() as c:
            with self.app_context():
                CompanyModel('Azul').save_to_db()
                r = c.get('/company/Azul')

                self.assertEqual(r.status_code, 200)
                self.assertDictEqual(d1={'company': {
                    'id': 1,
                    'name': 'Azul'
                }},
                                     d2=json.loads(r.data.decode('utf-8')))
Example #16
0
    def get(self):
        user = users.get_current_user()
        url = users.create_login_url(self.request.uri)
        url_linktext = 'Login'
                    
        if self.hasValidUser():
         if self.isNewUser():
            self.redirect("/login")
         else:
       
            url = users.create_logout_url(self.request.uri)
            url_linktext = 'Logout'
            listdesespaces = EspaceEmailsModel.getMyEspaces()
            companies_query = CompanyModel.all().order('-companydateadded')
            companies = companies_query.fetch(10)
            selection_query = SelectionModel.all()
            selections = selection_query.fetch(10)
       
	
            selectionsview = list()
		
            for company in companies:
                selectionview = SelectionView()
                selectionview.company = company
                selectionview.tags = list()
                companyid = company.key().id_or_name()
	   
            
           
                for espaceid in listdesespaces:
                    newtag = SelectionModel.getAllTagsForCompanyInThisEspace(espaceid,companyid)
                    match = [elt for elt in selectionview.tags if elt == newtag]
                    if not match :

                        selectionview.tags.append(newtag)
            
                selectionsview.append(selectionview)
    
            
            
        
            values = {
                'taggggs' :selectionview.tags,
                'selections' : selectionsview,
                'companies': companies,
	   
           
                'user': user,
                'url': url,
                'url_linktext': url_linktext,
            }
            self.response.out.write(template.render('templates/companies.html', values))
Example #17
0
 def get(self):
     user = users.get_current_user()
     url = users.create_login_url(self.request.uri)
     url_linktext = 'Login'
     title = 'Ajouter une entreprise'        
     raw_id = self.request.get('id')
     id = int(raw_id)
     lentreprise = CompanyModel.get_by_id(id)
     emails = CompanyEmailsModel.getAllEmailsByCompanyID(id)
     tels = CompanyTelModel.getAllTelsByCompanyID(id)
     notes = NoteCompanyModel.all().order('creedate').filter('company', CompanyModel.get_by_id(id))
     values = { 
         'emails' : emails,
         'tels' : tels,
         'company': lentreprise,
         'idcompany' : id,
         'notes' : notes,
         'user': user,
         'url': url,
         'url_linktext': url_linktext,
        }
     self.response.out.write(template.render('templates/loadnotecompany.html', values))
Example #18
0
async def create_a_new_account(account: CompanyModel,
                               account_type: str = 'enterprise'):
    if account_type == 'enterprise':
        try:
            # TODO: check constraint tax_code is unique and isn't deleted yet
            obj_company.fn_create_or_update_a_company(**account.dict())
            return JSONResponse(content={'message': "Created successfully."},
                                status_code=201)
        except ConstraintError:
            return JSONResponse(content={'message': "Already exists."})
    else:
        # TODO: create a personal account
        pass
Example #19
0
    def put(self):
        data = self.parser.parse_args()
        companyName = data['companyName']
        company = CompanyModel.find_by_name(companyName)

        # if company:
        #     company.price = data['price']
        # else:
        #     company = CompanyModel(companyName, **data)

        company.save_to_db()

        return company.json()
Example #20
0
 def post(self):
     user = users.get_current_user()
     url = users.create_login_url(self.request.uri)
     url_linktext = 'Login'
     title= 'Ajouter une entreprise'
     if user:
      raw_id = self.request.get('noteespace')
      id = int(raw_id)
      lacompany = CompanyModel.get_by_id(id)
      note  = NoteCompanyModel(
             profile  = UserProfileModel.getCurrent(),
             texnote = self.request.get('notebody'),
             company = lacompany)
      note.put();
Example #21
0
    def get(self):
        user = users.get_current_user()
        url = users.create_login_url(self.request.uri)
        url_linktext = 'Login'
                    
        if user:
            url = users.create_logout_url(self.request.uri)
            url_linktext = 'Logout'
            raw_id = self.request.get('id')
            id = int(raw_id)
            lentreprise = CompanyModel.get_by_id(id)
            emails = CompanyEmailsModel.getAllEmailsByCompanyID(id)
            notes = NoteCompanyModel.all().order('creedate').filter('company', CompanyModel.get_by_id(id))
            tels = CompanyTelModel.getAllTelsByCompanyID(id)
            persons = PersonModel.all().filter('organisme =', lentreprise)
            sujets = SujetModel.all().filter('organismeref =', lentreprise)
            tasks = TasksAboutModel.all().filter('organisme', lentreprise).filter('profile', UserProfileModel.getCurrent())
        else:
            self.redirect(users.create_login_url(self.request.uri))
		

       
        values = {
            'emails' : emails,
            'idcompany' : id,
            'sujets' : sujets,
            'tasks' : tasks,
            'tels' : tels,
            'persons' : persons,
            'company': lentreprise,
            'notes' : notes,
            'user': user,
            'url': url,
            'url_linktext': url_linktext,
        }
        self.response.out.write(template.render('templates/fiche_entreprise.html', values))
Example #22
0
    def test_crud(self):
        with self.app_context():
            competition = CompanyModel('AVIANCA')

            self.assertIsNone(
                CompanyModel.find_by_name('AVIANCA').first(),
                "Found an competition with name 'AVIANCA' before save_to_db")

            competition.save_to_db()

            self.assertIsNotNone(
                CompanyModel.find_by_name('AVIANCA').first(),
                "Did not find a competition with name 'AVIANCA' after save_to_db"
            )

            competition.delete_from_db()

            self.assertIsNone(
                CompanyModel.find_by_name('AVIANCA').first(),
                "Found an competition with name 'AVIANCA' after delete_from_db"
            )
    def post(self, name):
        if CompanyModel.find_by_name(name):
            return {'message': "A store with name '{}' already exists.".format(name)}, 400

        company = CompanyModel(name)
        try:
            company.save_to_db()
        except:
            return {"message": "An error occurred creating the store."}, 500

        return company.json(), 201
Example #24
0
 def post(self):
     user = users.get_current_user()
     url = users.create_login_url(self.request.uri)
     url_linktext = 'Login'
     title= 'Ajouter une entreprise'
     if user:
      raw_id = self.request.get('id')
      id = int(raw_id)
      company = CompanyModel.get_by_id(id)
      
      tache = TasksAboutModel(
             profile  = UserProfileModel.getCurrent() ,
             titretache = self.request.get('task[body]'),
             tachepourdate = self.request.get('task[date]'),
             etattache = True,
             organisme = company)
      tache.put();
Example #25
0
 def post(self):
     user = users.get_current_user()
     if user:
       raw_id = self.request.get('id')
       id = int(raw_id)
       lentreprise = CompanyModel.get_by_id(id)
       lentreprise.companyaddedby  = users.get_current_user()
       lentreprise.companyname = self.request.get('companyname')
       lentreprise.companytel = self.request.get('companytel')
       lentreprise.companymail = self.request.get('companymail')
       lentreprise.companywebsite = self.request.get('companywebsite')
       lentreprise.companyaddress = self.request.get('companyaddress')
       lentreprise.companywilaya = self.request.get('companyawilaya')
       lentreprise.companydescription = self.request.get('companydescription')
         
       lentreprise.put();
       self.redirect('/company?id='+raw_id)
 def post(self, name):
     company = CompanyModel.find_by_name(name)
     if company:
         data = Purchase.parser.parse_args()
         purchase_date = datetime.strptime(data['purchase_date'],
                                           "%Y-%m-%d")
         purchase = PurchaseModel(data['price'], data['quantity'],
                                  company.id, purchase_date)
         try:
             purchase.save()
         except:
             return {
                 "message": "An error occurred inserting the purchase."
             }, 500
     else:
         return {"message": "Company not found."}, 204
     return purchase.json(), 201
Example #27
0
 def post(self):
     user = users.get_current_user()
     if user:
      sujet  = SujetModel(
             sujetaddedby  = users.get_current_user(),
             titresujet = self.request.get('sujettitre'),
             description = self.request.get('Resume'),
             organismeref = CompanyModel.getCompanyByName(self.request.get('organisme').strip()))
      sujet.put();
      mots = self.request.get_all('motcle')
      for mot in mots:
          MotcleSujetModel(motcle = mot , sujet = sujet).put()
   
      encadreurs = self.request.get_all('autreencadreure')
      for encadreur in encadreurs:
          EncadreurSujetModel(autreencadreur = encadreur , sujet = sujet).put()
 
      self.redirect('/deals')
    def post(self, company_name):
        company = CompanyModel.find_by_name(company_name)

        if company:
            data = Income.parser.parse_args()

            date = datetime.strptime(data['receive_date'], "%Y-%m-%d")
            income = IncomeModel(data['value'], data['income_type'],
                                 company.id, date)
            try:
                income.save()
            except:
                return {
                    "message": "An error occurred inserting the income."
                }, 500
        else:
            return {"message": "Company not found"}, 204
        return income.json()
Example #29
0
 def get(self):
    user = users.get_current_user()
    url = users.create_login_url(self.request.uri)
    url_linktext = 'Login'
    title= 'Ajouter une entreprise'
    if user:
     raw_id = self.request.get('id')
     id = int(raw_id)
     company = CompanyModel.get_by_id(id)
     values = {
        'company': company,
        'title': title,
        'user': user,
        'url': url,
        'url_linktext': url_linktext,
      }
              
    self.response.out.write(template.render('templates/addnewpersonat.html', values))  
Example #30
0
    def mutate(root, info, company_data, user_id):
        name_check = CompanyModel.find_by_name(company_data.name)
        if name_check:
            raise Exception("Company already exist!")

        user = User.find_by_id(user_id)
        if user.company:
            raise Exception("User already belongs to a company!")

        owner_role = EmbeddedRole(name="owner", group=0, priority_level=0)

        company = CompanyModel(**company_data)
        company.roles.append(owner_role)
        company.save()

        user.role.append(owner_role)
        user.company = company
        user.save()

        return NewCompany(ok=True, company=company)
Example #31
0
    def get(self):
        user = users.get_current_user()
        url = users.create_login_url(self.request.uri)
        url_linktext = 'Login'
                    
        if user:
            url = users.create_logout_url(self.request.uri)
            url_linktext = 'Logout'
        else:
            self.redirect(users.create_login_url(self.request.uri))
# GQL is similar to SQL
        companies_query = CompanyModel.all().order('-companydateadded')
        companies = companies_query.fetch(10)
        selection_query = SelectionModel.all()
        selections = selection_query.fetch(10)
        id = self.request.get('id')
        espaceid = int(id)
	espace = EspaceModel.get_by_id(espaceid)
        selectionsview = list()
        for company in companies:
            selectionview = SelectionView()
	    selectionview.company = company
            companyid = company.key().id_or_name()
            
            selectionview.tags = SelectionModel.getAllTagsForCompanyInThisEspace(espaceid,companyid)
            selectionsview.append(selectionview)
            
            
        
        values = {
            'selections' : selectionsview,
            'companies': companies,
	    'id':id,
            
            'user': user,
            'url': url,
            'url_linktext': url_linktext,
        }
        self.response.out.write(template.render('templates/loadajax.html', values))           
Example #32
0
 def post(self):
     user = users.get_current_user()
     if user:
      person  = PersonModel(
             personaddedby  = users.get_current_user(),
             personname = self.request.get('companyname'),
             personpname = self.request.get('prenom'),
             organisme = CompanyModel.getCompanyByName(self.request.get('organisme').strip()),
             fonction =  self.request.get('fonction'),
             personwebsite = self.request.get('companywebsite'),
             personaddress = self.request.get('companyaddress'),
             personwilaya = self.request.get('companywilaya'),
             persondescription = self.request.get('companydescription'))
      person.put();
      emails = self.request.get_all('companymail')
      for email in emails:
         PersonEmailsModel(email = email , person = person).put()
      tels = self.request.get_all('companytel')
      for tel in tels:
          PersonTelModel(persontel = tel, person = person).put()     
      
      self.redirect('/')
Example #33
0
    def post(self):
        user = users.get_current_user()
        if user:
         

         tagname = self.request.get('tags')
         listdesespaces = EspaceEmailsModel.getMyEspaces()
         
         tag = TagModel(name =tagname).put();
         
         for idespace in listdesespaces:
             lespace = EspaceModel.get_by_id(idespace)
                
            
             idlist = self.request.get_all('id[]')
             for idcompany in idlist:
                 idc = int(idcompany)
                 company = CompanyModel.get_by_id(idc)
             
                 
             
                 selection = SelectionModel(espace = lespace, company = company, tag = tag,
                                        selectedby =users.get_current_user()).put()
    def get(self, segment_id: int) -> tuple:
        """
        Accesses ResumeModel, GraduationModel, CertificationModel, SkillModel, CompanyModel, 
        ProductModel, PresentationModel and returns all information by segment_id.
        """
        resume = ResumeModel.get_current_by_segment(segment_id)
        graduations = GraduationModel.get_all_by_segment(segment_id, True)
        certifications = CertificationModel.get_all_by_segment(segment_id)
        skills = SkillModel.get_all_by_segment(segment_id)
        companies = CompanyModel.get_all_by_segment(segment_id, True)
        products = ProductModel.get_all_by_segment(segment_id)
        presentations = PresentationModel.get_all_by_segment(segment_id, True)

        return {
            'curriculum': {
                'resume': check_json(resume),
                'graduations': list_map(graduations),
                'certifications': list_map_curriculum(certifications),
                'skills': list_map_curriculum(skills),
                'companies': list_map_curriculum(companies),
                'products': list_map_curriculum(products),
                'presentations': list_map_curriculum(presentations)
            }
        }, 200
Example #35
0
    def put(self, us_employer_id):

        company = CompanyModel.find_by_us_employer_id(us_employer_id)

        if not company:
            return {
                "message": "No such company registered with this employer ID !"
            }, 404

        data = Company.parser.parse_args()
        company.company_name = data['company_name']
        company.business_area = data['business_area']
        company.number_of_employees = data['number_of_employees']
        company.phone = data['phone']
        company.address = data['address']

        try:
            company.save_to_db()
        except:
            return {
                "message": "An error occurred while updating the company info!"
            }, 500

        return format_company_to_json(company)
Example #36
0
    def post(self):
        data = self.parser.parse_args()
        companyName = data['companyName']
        if CompanyModel.find_by_name(companyName):
            return {
                'message':
                "An item with name '{}' already exists.".format(companyName)
            }, 400

        company = CompanyModel(companyName, **data)

        try:
            company.save_to_db()
        except:
            return {
                "message": "An error occurred while inserting the item."
            }, 500

        return company.json(), 201
Example #37
0
    def post(self, us_employer_id):

        if CompanyModel.find_by_us_employer_id(us_employer_id):
            return {
                "message":
                "A company already exists with the same employer ID, use a different one!"
            }, 400

        data = Company.parser.parse_args()
        is_valid, error_message = CompanyModel.check_if_data_has_valid_format(
            us_employer_id, **data)

        if is_valid:
            new_company = CompanyModel(us_employer_id, **data)
            try:
                format_company_to_json(new_company)
                new_company.save_to_db()
                return format_company_to_json(new_company), 201
            except:
                return {
                    "message": "An error occurred while creating the user!"
                }, 500
        else:
            return {"message": error_message}, 400
Example #38
0
 def get(self, name):
     company = CompanyModel.find_by_name(name)
     if company:
         return company.json()
     return {'message': 'Company not found'}, 404
 def get(self,name):
     company = CompanyModel.find_by_name(name)
     if company:
         return company.json()
     return {'message':'company does not exist'},400
Example #40
0
 def get(self):
     return {
         'companies':
         [format_company_to_json(x) for x in CompanyModel.find_all()]
     }  # map() function returns a list of the results after applying the given function to each item of a given iterable (list, tuple etc.)
Example #41
0
 def get(self, id):
     company = CompanyModel.get_company(id)
     return company
Example #42
0
 def get(self):
     all_companies = CompanyModel.all()
     return all_companies
Example #43
0
 def post(self):
     data = Company.parser.parse_args()
     company_model = CompanyModel(data['name'])
     result = company_model.insert()
     return result
    def delete(self, name):
        company = CompanyModel.find_by_name(name)
        if company:
            company.delete_from_db()

        return {'message': 'Store deleted'}