Example #1
0
def job_comment(request, job_id):
    try:
        job = JobOpportunity.objects.get(pk = job_id)
    except:
        return json_response({'result':'fail', 'error':'job not found'})

    def list_comments(page, page_size):
        comments = CommentOnOpportunity.objects.filter(opportunity = job).order_by('-time')
        p = Paginator(comments, page_size)
        if page > p.num_pages:
            page = p.num_pages
        if page < 0:
            page = 0
        comments = map(comment_to_dict, p.page(page).object_list)
        return json_response({'result': 'success', 'page':page, 'pageCount':p.num_pages , 'comments': comments})

    if request.method == 'POST':
        action = request.POST['action']
        if action == 'list':
            page_size = request.POST.get('page_size', 4)
            page      = int(request.POST.get('page', 1))
            return list_comments(page, page_size)

        elif action == 'add':
            page_size = request.POST.get('page_size', 4)
            body = request.POST['comment']
            comment  = CommentOnOpportunity.objects.create(opportunity = job, user = request.userprofile, body = body)
            if request.userprofile.is_jobseeker():
                Event_CommentOnOpportunity.objects.create(comment=comment, initial_user=request.userprofile)

            return list_comments(1, page_size)
    else:
        return json_response({'result': 'fail', 'error': 'get not supported'})
Example #2
0
def userpanel_changejobseekerinfo_privacy(request):
    is_true = lambda x: x == True or x == 'true' or x == 'True'

    if request.method == 'POST':
        profile = request.userprofile
        if 'access_profile_public' in request.POST:
            profile.access_profile_public = is_true(request.POST['access_profile_public'])
        if 'access_profile_jobseeker' in request.POST:
            profile.access_profile_jobseeker = int(request.POST['access_profile_jobseeker'])
        if 'access_profile_employer' in request.POST:
            profile.access_profile_employer = int(request.POST['access_profile_employer'])
        if 'access_cv_public' in request.POST:
            profile.access_cv_public = is_true(request.POST['access_cv_public'])
        if 'access_cv_jobseeker' in request.POST:
            profile.access_cv_jobseeker = int(request.POST['access_cv_jobseeker'])
        if 'access_cv_employer' in request.POST:
            profile.access_cv_employer = int(request.POST['access_cv_employer'])
        profile.save()

        permissions = {
            'access_profile_public':    profile.access_profile_public,
            'access_profile_jobseeker': profile.access_profile_jobseeker,
            'access_profile_employer':  profile.access_profile_employer,
            'access_cv_public':         profile.access_cv_public,
            'access_cv_jobseeker':      profile.access_cv_jobseeker,
            'access_cv_employer':       profile.access_cv_employer
        }

        print(permissions)

        return json_response({'result': 'success', 'permissions': permissions})
    else:
        return json_response({'result': 'fail', 'error': 'get not supported'})
Example #3
0
def register_jobseeker_skills(request, session_name):
    if request.method == 'POST':
        return json_response({'result': 1}), True, None

    return json_response({
        'result': 1,
        'data': render_to_string('accounts/register/jobseeker/skills.html', RequestContext(request))
    }), False, None
Example #4
0
def userpanel_changecompanyinfo_removeimage(request, image_id):
    try:
        comp_image = CompanyImage.objects.get(pk = image_id)
    except:
        return json_response({'result': 'fail', 'error': 'invalid id'})

    if comp_image.employer != request.userprofile:
        return json_response({'result': 'fail', 'error': 'not authorized to delete this image'})        

    comp_image.delete()

    images = request.userprofile.images.all()
    images = map(lambda x: {'id': x.id, 'url': x.image.url}, images)
    return json_response({'result': 'success', 'images': images})
Example #5
0
def acceptOffer(request, offerid):
    offer = JobOffer.objects.get(id = offerid)
    offer.state = 0
    offer.offerDate = datetime.now()
    offer.save()
    Event_JobOffer.create(initial_user=offer.jobSeeker, jobOffer=offer)
    return json_response({})
Example #6
0
def register_jobseeker_finalize(request, session_name):
    session_steps = request.session[session_name]['steps']

    user = session_steps['user_info']
    jobseeker = session_steps['personal_info']
    jobseeker_work = session_steps['work_info']


    user.save()

    jobseeker.user = user
    jobseeker.job_status = jobseeker_work.job_status

    dest_file = 'cv/cv_%s.pdf' % user.username
    src_file = 'cv/%s' % jobseeker_work.cv_filename
    f = open(settings.MEDIA_ROOT + src_file)
    jobseeker.cv.save(dest_file, File(f))
    f.close()
    remove(settings.MEDIA_ROOT + src_file)

    jobseeker.save()

    skills = list(session_steps.get('skills', []))
    for skill in skills:
        jobseeker.skills.add(Skill.objects.get_or_create(name=skill)[0])


    del request.session[session_name]

    return json_response({
        'result': 1,
        'data': render_to_string('accounts/register/final.html', RequestContext(request))
    }), False, None
Example #7
0
def profile_employer_comments(request, employer_id):
    def list_comments(page, page_size):
        comments = CommentOnEmployer.objects.filter(employer__id = employer_id).order_by('-time')
        p = Paginator(comments, page_size)
        if page > p.num_pages:
            page = p.num_pages
        if page < 0:
            page = 0
        comments = map(comment_to_dict, p.page(page).object_list)
        return json_response({'result': 'success', 'page':page, 'pageCount':p.num_pages , 'comments': comments})

    if request.method == 'POST':
        action = request.POST['action']
        if action == 'list':
            page_size = request.POST.get('page_size', 4)
            page      = int(request.POST.get('page', 1))
            return list_comments(page, page_size)

        elif action == 'add':
            page_size = request.POST.get('page_size', 4)
            body = request.POST['comment']
            employer = Employer.objects.get(pk = employer_id)
            comment  = CommentOnEmployer.objects.create(employer = employer, user = request.userprofile, body = body)
            if request.userprofile.is_jobseeker():
                Event_CommentOnEmployer.objects.create(comment=comment, initial_user=request.userprofile)

            return list_comments(1, page_size)
    else:
        return json_response({'result': 'fail', 'error': 'get not supported'})
Example #8
0
def userpanel_changejobseekerinfo_skills(request):
    if request.method == 'POST':
        action = request.POST.get('action')
        if action == 'list possible':
            query = request.POST.get('query', '')
            if query == '':
                skills = Skill.objects.all()
            else:
                skills = Skill.objects.filter(name__contains = query)

            skills = map(lambda x: x.name, skills)
            return json_response({'result': 'success', 'skills': skills})

        elif action == 'list current':
            query = request.POST.get('query', '')
            if query == '':
                skills = request.userprofile.skills.all() 
            else:
                skills = request.userprofile.skills.filter(name__contains = query)
            skills = map(lambda x: x.name, skills)
            return json_response({'result': 'success', 'skills': skills})

        elif action == 'add current':
            skill = request.POST.get('skill', '')
            try:
                request.userprofile.skills.get(name=skill)
            except:
                skill = Skill.objects.get_or_create(name=skill)[0]
                request.userprofile.skills.add(skill)

            skills = request.userprofile.skills.all()
            skills = map(lambda x: x.name, skills)
            return json_response({'result': 'success', 'skills': skills})

        elif action == 'remove current':
            skill = request.POST.get('skill', '')
            try:
                skill = Skill.objects.get(name=skill)
                request.userprofile.skills.remove(skill)
            except:
                pass

            skills = request.userprofile.skills.all()
            skills = map(lambda x: x.name, skills)
            return json_response({'result': 'success', 'skills': skills})
    else:
        return json_response({'result': 'fail', 'error': 'get not supported'})
Example #9
0
def job_rate(request, job_id):
    if request.method == 'POST':
        try:
            job = JobOpportunity.objects.get(pk = job_id)
        except:
            return json_response({'result': 'fail', 'error': 'job does not exist'})

        if request.has_profile and request.userprofile.is_jobseeker():
            try:
                rate = int(request.POST['rate'])
            except:
                return json_response({'result': 'fail', 'error': 'no rate given'})

            rate_opportunity(request.userprofile, job, rate)
            return json_response({'result': 'success'})
    else:
        return json_response({'result': 'fail', 'error': 'get not supported'})
Example #10
0
def profile_employer_rate(request, employer_id):
    if request.method == 'POST':
        try:
            employer = Employer.objects.get(pk = employer_id)
        except:
            return json_response({'result': 'fail', 'error': 'employer does not exist'})

        if request.has_profile and request.userprofile.is_jobseeker():
            try:
                rate = int(request.POST['rate'])
            except:
                return json_response({'result': 'fail', 'error': 'no rate given'})

            rate_employer(request.userprofile, employer, rate)
            return json_response({'result': 'success'})
    else:
        return json_response({'result': 'fail', 'error': 'get not supported'})
Example #11
0
def userpanel_changecompanyinfo_uploadimage(request):
    if request.method == 'POST':
        form = CompanyImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            images_count = len(request.userprofile.images.all())
            if images_count >= 5:
                return json_response({'result': 'fail', 'error': 'maximum reached'})            

            comp_image = form.save(commit=False)
            comp_image.employer = request.userprofile
            comp_image.save()

            images = request.userprofile.images.all()
            images = map(lambda x: {'id': x.id, 'url': x.image.url}, images)
            return json_response({'result': 'success', 'images': images})
        else:
            return json_response({'result': 'fail', 'error': 'invalid form'})
    return json_response({'result': 'fail', 'error': 'get not supported'})
Example #12
0
def register_form(request, session_name, template, step, register_form):
    if request.method == 'POST':
        form = register_form(request.POST, request.FILES)
        if form.is_valid():
            request.session[session_name]['post'][step] = request.POST
            obj = form.save(commit=False)
            return json_response({'result': 1}), True, obj
        else:
            result = 0
    else:
        post = request.session[session_name]['post'].get(step)
        form =  register_form() if post == None else register_form(post)
        result = 1

    return json_response({
        'result': result,
        'data': render_to_string('accounts/register/' + template, RequestContext(request, {'form': form}))
    }), False, None
Example #13
0
 def list_comments(page, page_size):
     comments = CommentOnEmployer.objects.filter(employer__id = employer_id).order_by('-time')
     p = Paginator(comments, page_size)
     if page > p.num_pages:
         page = p.num_pages
     if page < 0:
         page = 0
     comments = map(comment_to_dict, p.page(page).object_list)
     return json_response({'result': 'success', 'page':page, 'pageCount':p.num_pages , 'comments': comments})
Example #14
0
def refuseJob(request, jobid):
    job = JobOpportunity.objects.get(id = jobid)
    user = request.userprofile
    response = {}
    if JobOffer.objects.filter(jobSeeker = user, jobOpportunity = job).exists():
        JobOffer.objects.filter(jobSeeker = user, jobOpportunity = job).delete()
        response['done'] = True
    else:
        response['done'] = False
    return json_response(response)
Example #15
0
def userpanel_requestFriendShip(request):
    invited_user_id = request.POST['invitedUser']
    user1 = JobSeeker.objects.get(user = request.user)
    print(user1)
    user2 = JobSeeker.objects.get(id = invited_user_id)
    print(user2)
    friendShip = FriendShip(jobSeeker1=user1 , jobSeeker2=user2)
    friendShip.save()
    print('friendship successfuly sabt shod :D ')
    return json_response(({'status' : 'you have successfully invited  "' + user2.full_name + '"  to be your friend.'}))
Example #16
0
def applyJob(request, jobid):
    print 'hey'
    print jobid
    job = JobOpportunity.objects.get(id = jobid)
    user = request.userprofile
    response = {}
    if not JobOffer.objects.filter(jobSeeker = user, jobOpportunity = job).exists():
        JobOffer.objects.create(jobSeeker = user, jobOpportunity = job, offerDate = datetime.now())
        response['done'] = True
    else:
        response['done'] = False
    return json_response(response)
Example #17
0
def job_opportunity_pages(request, opportunity_id):
    action = request.POST.get('action', '')
    try:
        opportunity = JobOpportunity.objects.get(pk = opportunity_id)
        if action == 'save':
            page_id = request.POST['page_id']
            content = request.POST['content']
            page = JobOpportunityPage.objects.get(pk = page_id)
            # if page.opportunity.id != opportunity_id:
            #     raise PermissionDenied
            page.content = content
            page.save()
            return json_response({'result': 'success'})

        elif action == 'remove':
            page_id = request.POST['page_id']
            page = JobOpportunityPage.objects.get(pk = page_id)
            if page.opportunity.id != opportunity_id:
                raise PermissionDenied
            page.delete()
            return json_response({'result': 'success'})

        elif action == 'add':
            title = request.POST['title']
            page = JobOpportunityPage.objects.create(opportunity=opportunity, title=title)
            page = {'page_id': page.id, 'title':page.title, 'content': page.content}
            return json_response({'result': 'success', 'page': page})

        elif action == 'list':
            pages = JobOpportunityPage.objects.filter(opportunity=opportunity)
            pages = map(lambda x: {'page_id': x.id, 'title':x.title, 'content': x.content}, pages)
            return json_response({'result': 'success', 'pages': pages})

    except Exception as e:
        raise e
        return json_response({'result': 'fail'})
Example #18
0
def userpanel_info_profile_pages(request):
    action = request.POST.get('action', '')
    
    try:
        if action == 'save':
            page_id = request.POST['page_id']
            content = request.POST['content']
            page = PersonalPage.objects.get(pk = page_id)
            if page.user != request.user:
                raise "Unauthorized"
            page.content = content
            page.save()
            return json_response({'result': 'success'})

        elif action == 'remove':
            page_id = request.POST['page_id']
            page = PersonalPage.objects.get(pk = page_id)
            if page.user != request.user:
                raise "Unauthorized"
            page.delete()
            return json_response({'result': 'success'})

        elif action == 'add':
            title = request.POST['title']
            page = PersonalPage.objects.create(user=request.user, title=title)
            page = {'page_id': page.id, 'title':page.title, 'content': page.content}
            return json_response({'result': 'success', 'page': page})

        elif action == 'list':
            pages = PersonalPage.objects.filter(user=request.user)
            pages = map(lambda x: {'page_id': x.id, 'title':x.title, 'content': x.content}, pages)
            return json_response({'result': 'success', 'pages': pages})

    except Error as e:
        print(e)
        return json_response({'result': 'fail'})
Example #19
0
def register_employer_finalize(request, session_name):
    session_steps = request.session[session_name]['steps']

    user = session_steps['user_info']
    employer = session_steps['company_info']

    user.save()

    employer.user = user
    employer.save()
    
    del request.session[session_name]

    return json_response({
        'result': 1,
        'data': render_to_string('accounts/register/final.html', RequestContext(request))
    }), False, None    
Example #20
0
def userpanel_sendEmail(request):
    response = {}
    m = Message()
    m.body = request.POST['recipient']
    m.subject = request.POST['subject']
    m.sender = request.user
    try:
        reciever = User.objects.get(username=request.POST['recipient'])
        m.reciever = reciever
        m.save()
        response['status'] = 'success'
    except:

        response['status'] = 'fail'
        response['error'] = 'invalid username'

    return json_response(response)
Example #21
0
def job_opportunity_skills(request, opportunity_id):
    if request.method == 'POST':
        action = request.POST.get('action')
        try:
            opportunity = JobOpportunity.objects.get(pk = opportunity_id)
        except:
            return json_response({'result': 'fail', 'error': 'job opportunity not found'})

        if action == 'list possible':
            query = request.POST.get('query', '')
            if query == '':
                skills = Skill.objects.all()
            else:
                skills = Skill.objects.filter(name__contains = query)

            skills = map(lambda x: x.name, skills)
            return json_response({'result': 'success', 'skills': skills})

        elif action == 'list current':
            query = request.POST.get('query', '')
            if query == '':
                skills = opportunity.opSkills.all() 
            else:
                skills = opportunity.opSkills.filter(name__contains = query)
            skills = map(lambda x: x.name, skills)
            return json_response({'result': 'success', 'skills': skills})

        elif action == 'add current':
            skill = request.POST.get('skill', '')
            try:
                opportunity.opSkills.get(name=skill)
            except:
                skill = Skill.objects.get_or_create(name=skill)[0]
                opportunity.opSkills.add(skill)

            skills = opportunity.opSkills.all()
            skills = map(lambda x: x.name, skills)
            return json_response({'result': 'success', 'skills': skills})

        elif action == 'remove current':
            skill = request.POST.get('skill', '')
            try:
                skill = Skill.objects.get(name=skill)
                opportunity.opSkills.remove(skill)
            except:
                pass

            skills = opportunity.opSkills.all()
            skills = map(lambda x: x.name, skills)
            return json_response({'result': 'success', 'skills': skills})
    else:
        return json_response({'result': 'fail', 'error': 'get not supported'})
Example #22
0
def register(request, action, steps, step_views, session_name, base_template):
    if action == 'ajax':
        step = request.GET.get('step')
        step = steps.index(step) if step in steps else None
        state = request.session.get(session_name)
        if step == None or state == None:
            step = 0
            state = {
                'current_step': 0,
                'steps': {},
                'post': {}
            }
            request.session[session_name] = state
            request.session.save()


        # No skipping steps  faulty, doesn't work for skills
        if state['current_step'] < step:
          # print("No skipping " + str(state['current_step']) + " < " +  str(step))
          step = state['current_step']

        response, next, result =  step_views[steps[step]](request, session_name)

        if next:
            if result != None:
                state['steps'][steps[step]] = result
            if state['current_step'] == step:
                state['current_step'] += 1
        
        request.session.save()

        return response

    elif action == 'steps':
        return json_response({'steps': steps})

    elif action == 'clear':
        if session_name in request.session:
            del request.session[session_name]
        return HttpResponse("Cleared")

    else:
        return render_to_response('accounts/register/' + base_template)
Example #23
0
def register_jobseeker_skills_handle(request):
    if request.method == 'POST':
        steps = request.session[JOBSEEKER_SESSION].get('steps')
        if steps == None:
            return json_response({'result':'fail', 'error':'no state set'})

        current_skills = steps.get('skills')

        if current_skills == None or type(current_skills) != set:
            current_skills = set()
            steps['skills'] = current_skills

        try:
            action = request.POST.get('action')
            if action == 'list possible':
                query = request.POST.get('query', '')
                if query == '':
                    skills = Skill.objects.all()
                else:
                    skills = Skill.objects.filter(name__contains = query)

                skills = map(lambda x: x.name, skills)
                return json_response({'result': 'success', 'skills': skills})

            elif action == 'list current':
                query = request.POST.get('query', '')
                skills = filter(lambda x: query == '' or query in x, current_skills)
                return json_response({'result': 'success', 'skills': skills})

            elif action == 'add current':
                skill = request.POST.get('skill', '')
                current_skills.add(skill)
                return json_response({'result': 'success', 'skills': list(current_skills)})

            elif action == 'remove current':
                skill = request.POST.get('skill', '')
                try:
                    current_skills.remove(skill)
                except:
                    pass
                return json_response({'result': 'success', 'skills': list(current_skills)})
        finally:
            request.session.save()
    else:
        return json_response({'result': 'fail', 'error': 'get not supported'})
Example #24
0
def zedit_preview(request):
	content = request.POST.get('content', '')
	return json_response({'result': 'success', 'content': markdown(content)})
Example #25
0
 def wrap(request, *args, **kwargs):
     if not request.user.is_authenticated():
         return json_response({"result":0, "error":"unauthorized", "data":settings.LOGIN_URL})
     else:
         return function(request, *args, **kwargs)
Example #26
0
def deleteJob(request, jobid):
    JobOpportunity.objects.get(id = jobid).delete()
    return json_response({})
Example #27
0
def rejectOffer(request, offerid):
    offer = JobOffer.objects.get(id = offerid)
    offer.state = 1
    offer.save()
    return json_response({})