fixed requestsend and approval part

main
Babit Shrestha 6 months ago
parent 3ae01ed458
commit 4d804d5bea
  1. BIN
      sahara/db.sqlite3
  2. BIN
      sahara/main/__pycache__/urls.cpython-312.pyc
  3. BIN
      sahara/main/__pycache__/views.cpython-312.pyc
  4. 7
      sahara/main/templates/main/profile.html
  5. 4
      sahara/main/urls.py
  6. 40
      sahara/main/views.py

Binary file not shown.

@ -91,7 +91,7 @@
{% for req in pending_requests %} {% for req in pending_requests %}
<li class="list-group-item d-flex justify-content-between align-items-center"> <li class="list-group-item d-flex justify-content-between align-items-center">
{{ req.service_offered }} request from {{ req.client.first_name|capfirst }} {{ req.client.last_name|capfirst }} {{ req.service_offered }} request from {{ req.client.first_name|capfirst }} {{ req.client.last_name|capfirst }}
<a class="status-badge status-active">Accept</a> <a class="btn btn-success status-badge status-active" href={% url 'approve' req.id %}>Accept</a>
</li> </li>
{% empty %} {% empty %}
<li class="list-group-item d-flex justify-content-between align-items-center"> <li class="list-group-item d-flex justify-content-between align-items-center">
@ -101,7 +101,7 @@
</ul> </ul>
</div> </div>
</div> </div>
{% endif %}
<!-- Completed Services --> <!-- Completed Services -->
<div class="recent-activities mt-4"> <div class="recent-activities mt-4">
<h4 class="my-3">Completed/Active Requests</h4> <h4 class="my-3">Completed/Active Requests</h4>
@ -110,7 +110,7 @@
{% for service in current %} {% for service in current %}
<li class="list-group-item d-flex justify-content-between align-items-center"> <li class="list-group-item d-flex justify-content-between align-items-center">
{{ service.service_offered }} request from {{ service.client.first_name|capfirst }} {{ service.client.last_name|capfirst }} {{ service.service_offered }} request from {{ service.client.first_name|capfirst }} {{ service.client.last_name|capfirst }}
<a class="status-badge status-complete">Complete</a> <a class="status-badge status-complete" href="{% url 'complete' service.id %}">Complete</a>
</li> </li>
{% empty %} {% empty %}
<li class="list-group-item d-flex justify-content-between align-items-center"> <li class="list-group-item d-flex justify-content-between align-items-center">
@ -120,7 +120,6 @@
</ul> </ul>
</div> </div>
</div> </div>
{% endif %}
</div> </div>
{% endblock %} {% endblock %}

@ -9,5 +9,7 @@ urlpatterns = [
path('logout/', views.user_logout, name='logout'), path('logout/', views.user_logout, name='logout'),
path('hire/', views.hire_view, name='hire'), path('hire/', views.hire_view, name='hire'),
path('services/',views.services,name='services'), path('services/',views.services,name='services'),
path('profiles/<pk>',views.profie_View, name="profiles") path('profiles/<pk>',views.profie_View, name="profiles"),
path('approve/<pk>',views.approve, name="approve"),
path('complete/<pk>',views.complete, name="complete"),
] ]

@ -6,8 +6,10 @@ from django.contrib.auth.decorators import login_required
from django.contrib import messages from django.contrib import messages
from .models import User,Service,ServiceRequest from .models import User,Service,ServiceRequest
from .forms import UserRegistrationForm from .forms import UserRegistrationForm
from django.urls import reverse
import logging import logging
import json import json
from django.utils import timezone
from django.http import JsonResponse from django.http import JsonResponse
from django.views.decorators.csrf import csrf_protect from django.views.decorators.csrf import csrf_protect
@ -105,7 +107,7 @@ def user_login(request):
form = None # Optionally, you can replace this with your login form form = None # Optionally, you can replace this with your login form
return render(request, 'main/login.html', {'form': form}) return render(request, 'main/login.html', {'form': form})
@login_required @login_required(login_url='login')
def user_logout(request): def user_logout(request):
logout(request) logout(request)
messages.success(request, 'You have been logged out.') messages.success(request, 'You have been logged out.')
@ -114,7 +116,7 @@ def user_logout(request):
def services(request): def services(request):
return render(request,'main/services1.html') return render(request,'main/services1.html')
@login_required @login_required(login_url='login')
@csrf_protect @csrf_protect
def hire_view(request): def hire_view(request):
if request.method == 'POST': if request.method == 'POST':
@ -167,14 +169,44 @@ def hire_view(request):
messages.error(request, 'Invalid request method') messages.error(request, 'Invalid request method')
return JsonResponse({'error': 'Invalid request method'}, status=405) return JsonResponse({'error': 'Invalid request method'}, status=405)
@login_required(login_url='login')
def profie_View(request,pk): def profie_View(request,pk):
if request.method == "GET": if request.method == "GET":
user = get_object_or_404(User,id=pk) user = get_object_or_404(User,id=pk)
pending_requests = ServiceRequest.objects.filter(service_provider=user, is_approved=False) pending_requests = ServiceRequest.objects.filter(service_provider=user, is_approved=False)
current = ServiceRequest.objects.filter(service_provider=user, is_approved=True) current = ServiceRequest.objects.filter(service_provider=user, is_approved=True, is_completed=False)
completed = ServiceRequest.objects.filter(service_provider=user, is_completed=True) completed = ServiceRequest.objects.filter(service_provider=user, is_completed=True)
context = {'user':user, context = {'user':user,
'pending_requests':pending_requests, 'pending_requests':pending_requests,
'completed_orders' : completed 'completed_orders' : completed,
'current':current,
} }
return render(request,'main/profile.html', context) return render(request,'main/profile.html', context)
login_required(login_url='login')
def approve(request, pk):
try:
instance = ServiceRequest.objects.get(id=pk)
except ServiceRequest.DoesNotExist:
return redirect('error_page')
instance.is_approved = True
instance.agreed_on = timezone.now()
instance.save()
profile_url = reverse('profiles', kwargs={'pk': request.user.id})
return redirect(profile_url)
def complete(request, pk):
print(pk)
try:
instance = ServiceRequest.objects.get(id=pk)
except ServiceRequest.DoesNotExist:
return redirect('error_page')
instance.completed_date = timezone.now()
instance.is_completed = True
instance.save()
print(instance.is_completed)
profile_url = reverse('profiles', kwargs={'pk': request.user.id})
print(profile_url)
return redirect(profile_url)

Loading…
Cancel
Save