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. 42
      sahara/main/views.py

Binary file not shown.

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

@ -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/<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 .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)
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