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 %}
@@ -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)
+