Beispiel #1
0
def jobs(request):
    publicly_available_jobs = Job.get_publicly_available_jobs()
    publicly_available_premium_jobs = Job.get_premium_jobs()

    user_filtered_query_set = JobFilter(request.GET,
                                        queryset=publicly_available_jobs)
    premium_filtered_query_set = JobFilter(
        request.GET, queryset=publicly_available_premium_jobs)

    paginator = Paginator(user_filtered_query_set.qs, 10)
    premium_paginator = Paginator(premium_filtered_query_set.qs, 10)

    try:
        page_number = int(request.GET.get("page", 1))
    except ValueError:
        return redirect("/")

    if page_number > paginator.num_pages:
        return redirect("/")

    public_jobs_to_display = paginator.page(page_number)
    premium_jobs_to_display = premium_paginator.page(1)

    context_dict = {
        "publicly_available_jobs": public_jobs_to_display,
        "premium_available_jobs": premium_jobs_to_display,
        "pages": paginator.page_range,
        "filter": user_filtered_query_set,
    }

    return render(request, template_name="jobs.html", context=context_dict)
Beispiel #2
0
def job_skill_view(request, unique_slug):
    """
    This view will return jobs related to a certain skill,
    i.e., Django Jobs or Flask Jobs.
    """
    skill = Skill.objects.filter(unique_slug=unique_slug).first()

    if not skill:
        return redirect("/")

    publicly_available_jobs = Job.get_publicly_available_jobs().filter(
        skills=skill)
    publicly_available_premium_jobs = Job.get_premium_jobs().filter(
        skills=skill)

    paginator = Paginator(publicly_available_jobs, 10)
    premium_paginator = Paginator(publicly_available_premium_jobs, 10)

    try:
        page_number = int(request.GET.get("page", 1))
    except ValueError:
        return redirect("/")

    if page_number > paginator.num_pages:
        return redirect("/")

    public_jobs_to_display = paginator.page(page_number)
    premium_jobs_to_display = premium_paginator.page(1)

    context_dict = {
        "publicly_available_jobs": public_jobs_to_display,
        "premium_available_jobs": premium_jobs_to_display,
        "pages": paginator.page_range,
        "skill": skill,
        "webpush": WEBPUSH_CONTEXT,
    }

    return render(
        request,
        template_name="jobs_by_skill.html",
        context=context_dict,
    )
Beispiel #3
0
def index(request):
    search = (request.GET.get("search", "")
              if len(request.GET.get("search", "")) > 3 else None)

    paginator = Paginator(Job.get_publicly_available_jobs(search), 7)

    try:
        page_number = int(request.GET.get("page", 1))
    except ValueError:
        return redirect("/")

    if page_number > paginator.num_pages:
        return redirect("/")

    public_jobs_to_display = paginator.page(page_number)

    context_dict = {
        "publicly_available_jobs": public_jobs_to_display,
        "premium_available_jobs": Job.get_premium_jobs(),
        "new_job_form": JobForm,
        "pages": paginator.page_range,
        "search": search if search is not None else "",
    }
    return render(request, template_name="index.html", context=context_dict)
Beispiel #4
0
 def items(self):
     return Job.get_publicly_available_jobs()
Beispiel #5
0
 def test_publicly_available(self):
     self.assertTrue((self.job in Job.get_publicly_available_jobs()))
Beispiel #6
0
def job_state_view(request, state):
    states = {
        "acre": (0, "Acre"),
        "alagoas": (1, "Alagoas"),
        "amapa": (2, "Amapá"),
        "amazonas": (3, "Amazonas"),
        "bahia": (4, "Bahia"),
        "ceara": (5, "Ceará"),
        "distrito-federal": (6, "Distrito Federal"),
        "espirito-santo": (7, "Espírito Santo"),
        "goias": (8, "Goiás"),
        "maranhao": (9, "Maranhão"),
        "mato-grosso": (10, "Mato Grosso"),
        "mato-grosso-do-sul": (11, "Mato Grosso do Sul"),
        "minas-gerais": (12, "Minas Gerais"),
        "para": (13, "Pará"),
        "paraiba": (14, "Paraíba"),
        "parana": (15, "Paraná"),
        "pernambuco": (16, "Pernambuco"),
        "piaui": (17, "Piauí"),
        "rio-de-janeiro": (18, "Rio de Janeiro"),
        "rio-grande-do-norte": (19, "Rio Grande do Norte"),
        "rio-grande-do-sul": (20, "Rio Grande do Sul"),
        "rondonia": (21, "Rondônia"),
        "roraima": (22, "Roraima"),
        "santa-catarina": (23, "Santa Catarina"),
        "sao-paulo": (24, "São Paulo"),
        "sergipe": (25, "Sergipe"),
        "tocantins": (26, "Tocantins"),
    }

    if state not in states.keys():
        return redirect("/")

    publicly_available_jobs = Job.get_publicly_available_jobs().filter(
        state=states[state][0])
    publicly_available_premium_jobs = Job.get_premium_jobs().filter(
        state=states[state][0])

    paginator = Paginator(publicly_available_jobs, 10)
    premium_paginator = Paginator(publicly_available_premium_jobs, 10)

    try:
        page_number = int(request.GET.get("page", 1))
    except ValueError:
        return redirect("/")

    if page_number > paginator.num_pages:
        return redirect("/")

    public_jobs_to_display = paginator.page(page_number)
    premium_jobs_to_display = premium_paginator.page(1)

    context_dict = {
        "publicly_available_jobs": public_jobs_to_display,
        "premium_available_jobs": premium_jobs_to_display,
        "pages": paginator.page_range,
        "state": states[state][1],
        "webpush": WEBPUSH_CONTEXT,
    }

    return render(
        request,
        template_name="jobs_by_location.html",
        context=context_dict,
    )