23# added messages

This commit is contained in:
Eligiusz Kurzawa 2021-01-15 15:19:10 +01:00
parent c3c8d97d51
commit 193eb7c8af
6 changed files with 29 additions and 14 deletions

View File

@ -56,11 +56,11 @@
{{ user.first_name }} {{ user.first_name }}
</button> </button>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a class="dropdown-item" href="#">My Jobs</a> <a class="dropdown-item" href="#">My jobs</a>
<a class="dropdown-item" href="">You Have {{ user.count_unread_messages }} message(s)</a> <a class="dropdown-item" href="">You have {{ user.count_unread_messages }} message(s)</a>
<a class="dropdown-item" href="">My Wish List</a> <a class="dropdown-item" href="">My wish list</a>
<a class="dropdown-item" href="{% url 'users:update_profile' pk=user.get_profile_id %}">Update Profile</a> <a class="dropdown-item" href="{% url 'users:update_profile' pk=user.get_profile_id %}">Update profile</a>
<a class="dropdown-item" href="">Change Password</a> <a class="dropdown-item" href="">Change password</a>
<a class="dropdown-item" href="{% url 'users:logout' %}">Logout</a> <a class="dropdown-item" href="{% url 'users:logout' %}">Logout</a>
</div> </div>
</div> </div>
@ -71,12 +71,12 @@
{{ user.first_name }} {{ user.first_name }}
</button> </button>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a class="dropdown-item" href="{% url 'jobs:create_job' %}">Add Job</a> <a class="dropdown-item" href="{% url 'jobs:create_job' %}">Add job</a>
<a class="dropdown-item" href="{% url 'users:employer_jobs' %}">My Jobs</a> <a class="dropdown-item" href="{% url 'users:employer_jobs' %}">My jobs</a>
{% if user.get_profile_id %} {% if user.get_profile_id %}
<a class="dropdown-item" href="{% url 'users:update_profile' pk=user.get_profile_id %}">Update Profile</a> <a class="dropdown-item" href="{% url 'users:update_profile' pk=user.get_profile_id %}">Update profile</a>
{% endif %} {% endif %}
<a class="dropdown-item" href="">Change Password</a> <a class="dropdown-item" href="">Change password</a>
<a class="dropdown-item" href="{% url 'users:logout' %}">Logout</a> <a class="dropdown-item" href="{% url 'users:logout' %}">Logout</a>
</div> </div>
</div> </div>

View File

@ -6,7 +6,7 @@
<div class="container"> <div class="container">
<div class="row no-gutters slider-text js-fullheight align-items-end justify-content-start" data-scrollax-parent="true"> <div class="row no-gutters slider-text js-fullheight align-items-end justify-content-start" data-scrollax-parent="true">
<div class="col-md-8 ftco-animate text-center text-md-left mb-5" data-scrollax=" properties: { translateY: '70%' }"> <div class="col-md-8 ftco-animate text-center text-md-left mb-5" data-scrollax=" properties: { translateY: '70%' }">
<p class="breadcrumbs" data-scrollax="properties: { translateY: '30%', opacity: 1.6 }"><span class="mr-3"><a href="index.html">Home <i class="ion-ios-arrow-forward"></i></a></span> <span class="mr-3"><a href="blog.html">Blog <i class="ion-ios-arrow-forward"></i></a></span> <span>Single</span></p> <p class="breadcrumbs" data-scrollax="properties: { translateY: '30%', opacity: 1.6 }"><span class="mr-3"><a href="index.html">Home <i class="ion-ios-arrow-forward"></i></a></span> <span>Detail</span></p>
<h1 class="mb-3 bread" data-scrollax="properties: { translateY: '30%', opacity: 1.6 }">Job detail</h1> <h1 class="mb-3 bread" data-scrollax="properties: { translateY: '30%', opacity: 1.6 }">Job detail</h1>
</div> </div>
</div> </div>
@ -43,7 +43,7 @@
Applied candidates Applied candidates
</button> </button>
{% for employee in applied_employees %} {% for employee in applied_employees %}
<a href="{% url 'users:employee_profile' pk=employee.pk %}" class="list-group-item list-group-item-action">{{ employee.first_name }} {{ employee.last_name }}</a> <a href="{% url 'users:employee_profile' employee_id=employee.pk job_id=job.id %}" class="list-group-item list-group-item-action">{{ employee.first_name }} {{ employee.last_name }}</a>
{% endfor %} {% endfor %}
</div> </div>
{% else %} {% else %}

View File

@ -26,6 +26,7 @@
<hr> <hr>
<h3>Send an invitation to employee</h3> <h3>Send an invitation to employee</h3>
<form action="" method="post"> <form action="" method="post">
{% csrf_token %}
<div class="row form-group"> <div class="row form-group">
<div class="col-md-12"> <div class="col-md-12">
<label class="font-weight-bold" for="fullname">Date</label> <label class="font-weight-bold" for="fullname">Date</label>

View File

@ -55,6 +55,9 @@ class Account(AbstractBaseUser, PermissionsMixin):
def get_profile_id(self): def get_profile_id(self):
return self.profile.id return self.profile.id
def count_unread_messages(self):
return self.invites.filter(unread=True).count()
class Profile(models.Model): class Profile(models.Model):
user = models.OneToOneField(Account, on_delete=models.CASCADE, related_name="profile") user = models.OneToOneField(Account, on_delete=models.CASCADE, related_name="profile")

View File

@ -7,6 +7,6 @@ urlpatterns = [
path('login/', UserLoginView.as_view(), name='login'), path('login/', UserLoginView.as_view(), name='login'),
path('logout/', UserLogoutView.as_view(), name='logout'), path('logout/', UserLogoutView.as_view(), name='logout'),
path('update-profile/<int:pk>/', UserUpdateView.as_view(), name='update_profile'), path('update-profile/<int:pk>/', UserUpdateView.as_view(), name='update_profile'),
path('employee-profile/<int:pk>/', EmployeeProfileView.as_view(), name='employee_profile'), path('employee-profile/<int:employee_id>/<int:job_id>/', EmployeeProfileView.as_view(), name='employee_profile'),
path('employer-jobs/', EmployerPostedJobsView.as_view(), name='employer_jobs'), path('employer-jobs/', EmployerPostedJobsView.as_view(), name='employer_jobs'),
] ]

View File

@ -67,11 +67,22 @@ class EmployeeProfileView(CreateView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(EmployeeProfileView, self).get_context_data(**kwargs) context = super(EmployeeProfileView, self).get_context_data(**kwargs)
context['account'] = Account.objects.get(pk=self.kwargs['pk']) context['account'] = Account.objects.get(pk=self.kwargs['employee_id'])
context['profile'] = Profile.objects.get(user_id=self.kwargs['pk']) context['profile'] = Profile.objects.get(user_id=self.kwargs['employee_id'])
context['job'] = Job.objects.get(id=self.kwargs['job_id'])
context['categories'] = Category.objects.all() context['categories'] = Category.objects.all()
return context return context
def form_valid(self, form):
instance = form.save(commit=False)
instance.user = Account.objects.get(pk=self.kwargs['employee_id'])
instance.job = Job.objects.get(pk=self.kwargs['job_id'])
instance.save()
return super(EmployeeProfileView, self).form_valid(form)
def get_success_url(self):
return reverse('users:employer_jobs')
@method_decorator(login_required(login_url='/users/login'), name='dispatch') @method_decorator(login_required(login_url='/users/login'), name='dispatch')
class EmployerPostedJobsView(ListView): class EmployerPostedJobsView(ListView):