diff --git a/sahara/db.sqlite3 b/sahara/db.sqlite3 index 3638b51..4a9c6a5 100644 Binary files a/sahara/db.sqlite3 and b/sahara/db.sqlite3 differ diff --git a/sahara/main/__pycache__/urls.cpython-312.pyc b/sahara/main/__pycache__/urls.cpython-312.pyc index 92ca9d0..7235aa5 100644 Binary files a/sahara/main/__pycache__/urls.cpython-312.pyc and b/sahara/main/__pycache__/urls.cpython-312.pyc differ diff --git a/sahara/main/__pycache__/views.cpython-312.pyc b/sahara/main/__pycache__/views.cpython-312.pyc index 75dc713..0b69e7e 100644 Binary files a/sahara/main/__pycache__/views.cpython-312.pyc and b/sahara/main/__pycache__/views.cpython-312.pyc differ diff --git a/sahara/main/templates/main/profile.html b/sahara/main/templates/main/profile.html index d078f42..b4407a8 100644 --- a/sahara/main/templates/main/profile.html +++ b/sahara/main/templates/main/profile.html @@ -91,7 +91,7 @@ {% for req in pending_requests %}
  • {{ req.service_offered }} request from {{ req.client.first_name|capfirst }} {{ req.client.last_name|capfirst }} - Accept + Accept
  • {% empty %}
  • @@ -101,7 +101,7 @@ - + {% endif %}

    Completed/Active Requests

    @@ -110,7 +110,7 @@ {% for service in current %}
  • {{ service.service_offered }} request from {{ service.client.first_name|capfirst }} {{ service.client.last_name|capfirst }} - Complete + Complete
  • {% empty %}
  • @@ -120,7 +120,6 @@ - {% endif %} {% endblock %} diff --git a/sahara/main/urls.py b/sahara/main/urls.py index c6bf744..2988fff 100644 --- a/sahara/main/urls.py +++ b/sahara/main/urls.py @@ -9,5 +9,7 @@ urlpatterns = [ path('logout/', views.user_logout, name='logout'), path('hire/', views.hire_view, name='hire'), path('services/',views.services,name='services'), - path('profiles/',views.profie_View, name="profiles") + path('profiles/',views.profie_View, name="profiles"), + path('approve/',views.approve, name="approve"), + path('complete/',views.complete, name="complete"), ] \ No newline at end of file diff --git a/sahara/main/views.py b/sahara/main/views.py index be646c3..8d054a9 100644 --- a/sahara/main/views.py +++ b/sahara/main/views.py @@ -6,8 +6,10 @@ from django.contrib.auth.decorators import login_required from django.contrib import messages from .models import User,Service,ServiceRequest from .forms import UserRegistrationForm +from django.urls import reverse import logging import json +from django.utils import timezone from django.http import JsonResponse 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 return render(request, 'main/login.html', {'form': form}) -@login_required +@login_required(login_url='login') def user_logout(request): logout(request) messages.success(request, 'You have been logged out.') @@ -114,7 +116,7 @@ def user_logout(request): def services(request): return render(request,'main/services1.html') -@login_required +@login_required(login_url='login') @csrf_protect def hire_view(request): if request.method == 'POST': @@ -167,14 +169,44 @@ def hire_view(request): messages.error(request, 'Invalid request method') return JsonResponse({'error': 'Invalid request method'}, status=405) +@login_required(login_url='login') def profie_View(request,pk): if request.method == "GET": user = get_object_or_404(User,id=pk) 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) context = {'user':user, 'pending_requests':pending_requests, - 'completed_orders' : completed + 'completed_orders' : completed, + 'current':current, } - return render(request,'main/profile.html', context) \ No newline at end of file + 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) +