Escolar Documentos
Profissional Documentos
Cultura Documentos
def qtd_vagas(self):
return Vagas.objects.filter(empresa__id=self.id).count()
{% if empresa.qtd_vagas > 0 %}
<img src="{% static 'empresa/img/flag_green.png' %}">
{% else %}
<img src="{% static 'empresa/img/flag_red.png' %}">
{% endif %}
  {{empresa.qtd_vagas}}
Filtrando empresas
Adicione as seguintes propriedades no form:
def empresas(request):
technologias_filtrar = request.GET.get('tecnologias')
nome_filtrar = request.GET.get('nome')
empresas = Empresa.objects.all()
if technologias_filtrar:
empresas = empresas.filter(tecnologias = technologias_filtrar)
if nome_filtrar:
empresas = empresas.filter(nome__icontains = nome_filtrar)
Crie o empresa.html
{% extends 'base.html' %}
{% load static %}
{% block 'head' %}
<link href="{% static 'empresa/css/empresa.css' %}" rel="stylesheet">
{% endblock%}
{% block 'body' %}
<br>
<div class="container">
{% if messages %}
{% for message in messages %}
<br>
<section class="alert {{message.tags}}">
{{message}}
</section>
{% endfor %}
{% endif %}
<div class="row">
<div class="col-md-3">
<img width="100%" src="{{empresa.logo.url}}">
</div>
<div class="col-md">
<h1 class="titulo">{{empresa.nome}}</h1>
<p class="paragrafo">{{empresa.endereco}}</p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-6">
<label>Nicho de mercado:</label>
<input disabled type="text" class="form-control" value="Nicho">
</div>
<div class="col-md-3">
<label>Tecnologias usadas:</label>
<select class="form-select">
<option>---</option>
</select>
</div>
</div>
<br>
<div class="row">
<div class="col-md-3">
</div>
</div>
<hr>
<div class="row">
vagas
</div>
</div>
<br>
<br>
{% endblock %}
#Nicho
<input disabled type="text" class="form-control" value="{{empresa.get_nicho_mercado_display}}">
#Tecnologias
{% for tech in empresa.tecnologias.all %}
<option>{{tech}}</option>
{% endfor %}
#Caracteristicas
<textarea disabled class="form-control">{{empresa.caracteristica_empresa}}</textarea>
Nova vaga
Crie o modal com o formulário para nova vaga:
</div>
<br>
<div class="row">
<div class="col-md">
<label>Tecnologias que já domino:</label>
<select name="tecnologias_domina" class="form-select" multiple>
{% for tech in tecnologias %}
<option value="{{tech.id}}">{{tech}}</option>
{% endfor %}
</select>
</div>
<div class="col-md">
<label>Tecnologias que não domino:</label>
<select name="tecnologias_nao_domina" class="form-select" multiple>
{% for tech in tecnologias %}
<option value="{{tech.id}}">{{tech}}</option>
{% endfor %}
</select>
</div>
</div>
<br>
<div class="row">
<div class="col-md">
<label>Nível de experiência:</label>
<select name="experiencia" class="form-select">
<option value="J">Júnior</option>
<option value="P">Pleno</option>
<option value="S">Sênior</option>
</select>
</div>
<div class="col-md">
<label>Data final:</label>
<input type="date" class="form-control" name="data_final">
</div>
</div>
<br>
<div class="row">
<div class="col-md">
<label>Empresa:</label>
<select name="empresa" class="form-select">
</select>
</div>
</div>
<br>
<div class="row">
<div class="col-md">
<label>Status:</label>
<select name="status" class="form-select">
<option value="I">Interesse</option>
<option value="C">Currículo enviado</option>
<option value="E">Entrevista</option>
<option value="D">Desafio técnico</option>
<option value="F">Finalizado</option>
</select>
</div>
</div>
<br>
<input type="submit" value="Nova empresa" class="btn btn-lg btn-orange">
</form>
</div>
</div>
Adicione no empresa.css
.titulo{
color: #7D2948;
font-weight: bold;
.paragrafo{
font-size: 25px;
}
.btn-orange{
background-color: #ED8554;
color: white;
}
label{
font-weight: bold;
}
.box-vagas{
width: 400px;
margin-top: 60px;
background-color: #EDE6E6;
}
.header-vagas{
background-color: #7D2948;
padding: 15px;
color: white
}
.body-vagas{
padding: 15px;
}
.paragrafo-orange{
color: #ED8554;
}
Liste as empresas:
Instale o app!!
path('vagas/', include('vagas.urls'))
Crie o urls.py:
urlpatterns = [
path('nova_vaga/', views.nova_vaga, name="nova_vaga")
]
def nova_vaga(request):
if request.method == "POST":
titulo = request.POST.get('titulo')
email = request.POST.get('email')
tecnologias_domina = request.POST.get('tecnologias_domina')
tecnologias_nao_domina = request.POST.get('tecnologias_nao_domina')
experiencia = request.POST.get('experiencia')
data_final = request.POST.get('data_final')
empresa = request.POST.get('empresa')
status = request.POST.get('status')
# TODO: validations
vaga = Vagas(
titulo=titulo,
email=email,
nivel_experiencia=experiencia,
data_final=data_final,
empresa_id=empresa,
status=status,
)
vaga.save()
vaga.tecnologias_estudar.add(*tecnologias_nao_domina)
vaga.tecnologias_dominadas.add(*tecnologias_domina)
vaga.save()
messages.add_message(request, constants.SUCCESS, 'Vaga criada com sucesso.')
return redirect(f'/home/empresa/{empresa}')
elif request.method == "GET":
raise Http404()
email = models.EmailField(null=True)
Faça as migrações:
<div class="box-vagas">
<div class="header-vagas">
{{vaga.titulo}}
</div>
<div class="body-vagas">
<div class="row">
<div class="col-md">
<label class="paragrafo">Nível:</label>
<br>
<label class="paragrafo paragrafo-orange">{{vaga.get_nivel_experiencia_display}}</label>
</div>
<div class="col-md">
<label class="paragrafo">Status <img src="{% static 'empresa/img/flag_green.png' %}"></label>
<br>
<label class="paragrafo paragrafo-orange">{{vaga.get_status_display}}</label>
</div>
</div>
</div>
</div>
</div>
{% endfor %}