Ejemplo n.º 1
0
def get_jobs_in_preferred_cities(request):
    try:
        user = request.user
        if not Candidate.objects.filter(user=user).exists():
            return response_400("No candidate associated with this user",
                                "No candidate associated with this user", None)

        candidate = Candidate.objects.filter(user=user).first()
        preferred_cities = candidate.preferred_city.all()
        preferred_cities_name = [p.name for p in preferred_cities]

        locations = request.query_params.getlist(
            'location') if request.query_params.getlist(
                'location') else preferred_cities_name

        jobs = JobPost.objects.filter(status__in=['Expired', 'Published'])

        if locations:
            locationObjects = City.objects.filter(name__in=locations)
            jobs = jobs.filter(removed=False,
                               locations__in=locationObjects,
                               status__in=['Expired', 'Published'])

        return response_200(
            "Jobs in preferred cities fetched",
            JobSerializer(jobs, context={
                'request': request
            }, many=True).data)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 2
0
def get_subscribed_company_jobs(request):
    try:
        user = request.user
        if not Candidate.objects.filter(user=user).exists():
            return response_400("No candidate associated with this user",
                                "No candidate associated with this user", None)

        candidate = Candidate.objects.filter(user=user).first()
        result = []
        if SubscribedCompanies.objects.filter(candidate=candidate).exists():
            sub_companies = SubscribedCompanies.objects.filter(
                candidate=candidate)
            for company in sub_companies:
                obj = {}
                obj['subscribed_company'] = SubscribedCompaniesSerializer(
                    company, context={
                        'request': request
                    }).data
                jobs = JobPost.objects.filter(
                    company=company.company,
                    status__in=['Expired', 'Published'])
                obj['jobs'] = JobSerializer(jobs,
                                            context={
                                                'request': request
                                            },
                                            many=True).data
                result.append(obj)
        return response_200("Subscribed Companies and jobs fetched", result)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 3
0
def add_company(request):
    try:
        user = request.user
        body = request.data

        if not user.is_employer:
            return response_400("Only employers can add company profile",
                                "Only employers can add company profile", None)

        else:
            name = body['name'] if 'name' in body else None
            title = body['title'] if 'title' in body else None
            short_code = body['short_code'] if 'short_code' in body else None
            phone_number = body[
                'phone_number'] if 'phone_number' in body else None
            size = body['size'] if 'size' in body else None
            level = body['level'] if 'level' in body else None
            website = body['website'] if 'website' in body else None
            logo_url = body['logo_url'] if 'logo_url' in body else None
            profile = body['profile'] if 'profile' in body else None
            description = body['description'] if 'description' in body else None
            email = body['email'] if 'email' in body else None
            is_active = body['is_active'] if 'is_active' in body else False
            facebook = body['facebook'] if 'facebook' in body else None
            twitter = body['twitter'] if 'twitter' in body else None
            linkedin = body['linkedin'] if 'linkedin' in body else None
            instagram = body['instagram'] if 'instagram' in body else None
            address = body['address'] if 'address' in body else None

            company = Company()
            company.name = name
            company.title = title
            company.description = description
            company.short_code = short_code
            company.size = size
            company.level = level
            company.website = website
            company.logo_url = logo_url
            company.profile = profile
            company.email = email
            company.phone_number = phone_number
            company.is_active = is_active
            company.facebook = facebook
            company.twitter = twitter
            company.linkedin = linkedin
            company.instagram = instagram
            company.address = address
            company.save()

            return response_200(
                "Company details added successfully",
                CompanySerializer(company, context={
                    'request': request
                }).data)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 4
0
def get_company_dropdown(request):
    try:
        companies = Company.objects.filter(removed=False)
        return response_200(
            "Company fetched successfully",
            CompanySerializer(companies,
                              context={
                                  'request': request
                              },
                              many=True).data)
    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 5
0
def get_initiative_by_company(request, company_id):
    try:
        #if not Initiative.objects.filter(company__id = company_id , removed = False).exists():
        #    return response_400('Requested Initiative does not exists' , 'INITIATIVE DOES NOT EXISTS', None)
        #else:
        initiative_details = Initiative.objects.filter(company__id=company_id,
                                                       removed=False)
        return response_200(
            "Initiative fetched successfully",
            InitiativeSerializer(initiative_details, many=True).data)
    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 6
0
def get_initiative_individual(request, initiative_id):
    try:
        if not Initiative.objects.filter(id=initiative_id,
                                         removed=False).exists():
            return response_400('Requested Initiative does not exists',
                                'INITIATIVE DOES NOT EXISTS', None)
        else:
            initiative_details = Initiative.objects.filter(
                id=initiative_id, removed=False).first()
            return response_200("Initiative fetched successfully",
                                InitiativeSerializer(initiative_details).data)
    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 7
0
def get_video_individual(request, video_id):
    try:
        if Video.objects.filter(removed=False, id=video_id).exists():
            video = Video.objects.filter(removed=False, id=video_id).first()
            return response_200(
                "Video fetched successfully",
                VideoSerializer(video, context={
                    'request': request
                }).data)
        else:
            return response_400("Video does not exists",
                                "Video does not exists", None)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 8
0
def get_blog_individual(request, blog_id):
    try:
        if Blog.objects.filter(removed=False, id=blog_id).exists():
            blog = Blog.objects.filter(removed=False, id=blog_id).first()
            return response_200(
                "Blog fetched successfully",
                BlogSerializer(blog, context={
                    'request': request
                }).data)
        else:
            return response_400("Blog does not exists", "Blog does not exists",
                                None)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 9
0
def get_video(request):
    try:
        tags = request.query_params.getlist('tag', None)
        videos = Video.objects.filter(removed=False)
        if tags:
            tagsObjects = LearningTag.objects.filter(name__in=tags)
            videos = videos.filter(removed=False, tags__in=tagsObjects)

        return response_200(
            "Video fetched successfully",
            VideoSerializer(videos, context={
                'request': request
            }, many=True).data)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 10
0
def get_story_individual(request, story_id):
    try:
        user = request.user

        if Stories.objects.filter(removed=False, id=story_id).exists():
            story = Stories.objects.filter(removed=False, id=story_id).first()
            return response_200(
                "Stories fetched successfully",
                StoriesSerializer(story, context={
                    'request': request
                }).data)
        else:
            return response_400("Story does not exists",
                                "Story does not exists", None)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 11
0
def get_story(request):
    try:
        user = request.user
        company_id = request.query_params.get('company_id')

        if Company.objects.filter(id=company_id).exists():
            company = Company.objects.filter(id=company_id).first()
            stories = Stories.objects.filter(company=company, removed=False)
        else:
            stories = Stories.objects.filter(removed=False)

        return response_200(
            "Stories fetched successfully",
            StoriesSerializer(stories, context={
                'request': request
            }, many=True).data)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 12
0
def get_liked_scholarships(request):
    try:
        user = request.user
        if not Candidate.objects.filter(user=user).exists():
            return response_400("No candidate associated with this user",
                                "No candidate associated with this user", None)

        candidate = Candidate.objects.filter(user=user).first()
        liked_scholarships = LikedScholarships.objects.filter(
            candidate=candidate)
        return response_200(
            "Liked scholarships fetched",
            LikedScholarshipsSerializer(liked_scholarships,
                                        context={
                                            'request': request
                                        },
                                        many=True).data)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 13
0
def get_liked_jobs(request):
    try:
        user = request.user
        if not Candidate.objects.filter(user=user).exists():
            return response_400("No candidate associated with this user",
                                "No candidate associated with this user", None)

        candidate = Candidate.objects.filter(user=user).first()
        liked_jobs = LikedJobs.objects.filter(
            candidate=candidate, job_post__status__in=['Expired', 'Published'])
        return response_200(
            "Liked jobs fetched",
            LikedJobsSerializer(liked_jobs,
                                context={
                                    'request': request
                                },
                                many=True).data)

    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 14
0
def get_company_details(request, company_id):
    try:
        user = request.user
        if not Company.objects.filter(id=company_id).exists():
            return response_400(
                'Requested company is not registered with Inclusivo',
                'COMPANY_NOT_REGISTERED', None)
        else:
            company_details = Company.objects.filter(id=company_id).first()
            is_following = False
            if SubscribedCompanies.objects.filter(company=company_details,
                                                  candidate__user=user):
                is_following = True
            data = {}
            data['company'] = CompanySerializer(company_details,
                                                context={
                                                    'request': request
                                                }).data
            data['is_following'] = is_following
            return response_200("Companies fetched successfully", data)
    except Exception as e:
        return response_500("internal error", e)
Ejemplo n.º 15
0
def list_companies(request):
    try:
        user = request.user
        body = request.data
        filters = body['filters'] if 'filters' in body else {}
        sortField = getDBFieldCompany(
            filters['sortField']) if 'sortField' in filters else "c.id"
        sortOrder = filters['sortOrder'] if 'sortOrder' in filters else "desc"
        pageNumber = filters[
            'pageNumber'] if 'pageNumber' in filters else constants.DEFAULT_PAGE_NUMBER
        pageSize = filters[
            'pageSize'] if 'pageSize' in filters else constants.DEFAULT_PAGE_SIZE
        search = filters['search'] if 'search' in filters else []
        filter_query = " where c.removed=FALSE"

        job_list = []

        totalCountQuery = """SELECT count(DISTINCT c.id) as count   
        FROM company_company c
        """
        query = """SELECT distinct(c.id) as id
        FROM company_company c 
        """

        query += filter_query
        totalCountQuery += filter_query

        searchQuery = ""
        if len(search) > 0:
            for s in search:
                searchType = commonservice.getSearchType(
                    s['searchType'] if 'searchType' in s else None)
                dbField = getDBFieldCompany(
                    s['searchField'] if 'searchField' in s else None)
                fieldDatatype = getFieldDataTypeCompany(
                    s['searchField'] if 'searchField' in s else None)

                searchQuery += " and " + commonservice.getSearchQueryField(
                    searchType, fieldDatatype, dbField,
                    s['searchText'] if 'searchText' in s else "")

        query += searchQuery
        totalCountQuery += searchQuery
        query += " order by " + sortField
        query += " " + sortOrder
        if pageNumber != -1:
            query += " limit " + str(pageSize) + " offset " + (str)(
                pageNumber * pageSize)

        results = {}
        query_result = JobDTO.objects.raw(query)

        for result in query_result:
            job = CompanySerializer(Company.objects.get(id=result.id),
                                    context={
                                        'request': request
                                    }).data
            #job['is_following'] = SubscribedCompanies.objects.filter(company_id=result.id, candidate__user=user).exists()
            job_list.append(job)

        total_count_result = CountDTO.objects.raw(totalCountQuery)[0].count

        results['companies'] = job_list
        results['total_count'] = total_count_result
        results['page_number'] = pageNumber
        results['page_size'] = pageSize

        return response_200("Fetched successfully", results)

    except Exception as e:
        return response_500("internal error", e)