Skip to content
Permalink
Browse files
Add files via upload
  • Loading branch information
mughali4 committed Apr 20, 2023
1 parent 94cbadd commit 1db41635c6e5841a60e370996d8f58efbbef78ca
Show file tree
Hide file tree
Showing 40 changed files with 802 additions and 0 deletions.
BIN +184 KB db.sqlite3
Binary file not shown.
Empty file.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,16 @@
from django.contrib import admin

# Register your models here.

# allow admin make change in employee table
from .models import employee,deliverym,team,van,emp

admin.site.register(employee)
admin.site.register(deliverym)
admin.site.register(emp)
admin.site.register(van)
admin.site.register(team)
# class Postuni(admin.ModelAdmin):
# # show field to show to admin
# list_display = ( 'source', 'destination')

@@ -0,0 +1,6 @@
from django.apps import AppConfig


class DeliveryConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'delivery'
@@ -0,0 +1,28 @@

from django import forms



# accounts
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.models import User
from .models import employee,deliverym

class RegisterForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
class Meta():
model = User
fields = ('username','password','email')
class EmpForm(forms.ModelForm):
class Meta:
model = employee
fields = ('phonenumber',)
def clean(self):
cleaned_data = super(EmpForm, self).clean()

class DeliveryForm(forms.ModelForm):
class Meta:
model = deliverym
fields = ('source','destination','route','delivery_id')
def clean(self):
cleaned_data = super(DeliveryForm, self).clean()
@@ -0,0 +1,56 @@
# from django.db import models

# Create your models here.
from django.db import models
from django.contrib.auth.models import User
# users model
class employee(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,related_name='puser')
username = models.CharField(max_length=200)
phonenumber=models.IntegerField()
def __str__(self):
return self.user.username


# user
class deliverym(models.Model):
# source = models.ForeignKey(Question, on_delete=models.CASCADE)
delivery_id=models.IntegerField()
source = models.CharField(max_length=200)
destination = models.CharField(max_length=200)
route = models.CharField(max_length=200)
delivery_emp = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
status=models.CharField(max_length=100)
#to convert model's object into string
# def __str__(self):
# return self.delivery_id


class emp(models.Model):
emp_id=models.IntegerField()
fname = models.CharField(max_length=200)
lname = models.CharField(max_length=200)
usermode = models.CharField(max_length=200)
phonenumber=models.IntegerField()
email = models.CharField(max_length=20)
username = models.CharField(max_length=200)
password = models.CharField(max_length=200)
# def __str__(self):
# return self.emp.username

class team(models.Model):
team_id=models.IntegerField()
name = models.CharField(max_length=200)
emp_id = models.ManyToManyField(emp, null=True)
# def __str__(self):
# return self.team.name


class van(models.Model):
van_id=models.IntegerField()
license_no = models.CharField(max_length=200)
van_status = models.CharField(max_length=200)
emp_id = models.ForeignKey(emp, null=True, on_delete=models.CASCADE)
team_id=models.ForeignKey(team, null=True, on_delete=models.CASCADE)
# def __str__(self):
# return self.van.username
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
@@ -0,0 +1,37 @@
from django.urls import path

# from . import views
from .views import *

urlpatterns = [
path("index", index, name="index"),
path('login/', user_login, name='login'),
# path('registerr/', register, name='registerr'),

path('delivery_detail/', delivery_detail, name='delivery_detail'),
path('registerr/', register, name='registerr'),

# path('display_data/<int:employee_id>/deliveries/', display_data, name='display_data'),
# Add more URL patterns here as needed
path('logout/', LogoutView.as_view(), name='logout'),



]



# from django.urls import path

# from . import views

# urlpatterns = [
# # ex: /polls/
# path("", views.index, name="index"),
# # ex: /polls/5/
# path("<int:question_id>/", views.detail, name="detail"),
# # ex: /polls/5/results/
# path("<int:question_id>/results/", views.results, name="results"),
# # ex: /polls/5/vote/
# path("<int:question_id>/vote/", views.vote, name="vote"),
# ]
@@ -0,0 +1,83 @@
from django.shortcuts import render,redirect
from django.contrib.auth import logout,authenticate,login
from django.urls import reverse
from django.http import HttpResponse, HttpResponseRedirect
from .models import employee,deliverym
from .forms import RegisterForm,EmpForm,DeliveryForm

# Create your views here.

def index(request):
return render(request, "base.html")
# return HttpResponse("Hello, world. You're at the delivery index.")


def register(request):
registered = False
if request.method == 'POST':
user_form = RegisterForm(data=request.POST)
profile_form = DeliveryForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
print('account created')
profile.save()
# delivery.save()
registered = True
else:
print(user_form.errors,profile_form.errors)
else:
user_form = RegisterForm()
profile_form = DeliveryForm()
return render(request,'profile.html',
{'user_form':user_form,
'profile_form':profile_form,
'registered':registered})


# login function
def user_login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)


if user:
if user.is_active:
login(request,user)
print("hello welcome")
return HttpResponseRedirect(reverse('delivery_detail'))
else:
return HttpResponse("Your account was inactive.")
else:
print("Someone tried to login and failed.")
print("They used username: {} and password: {}".format(username,password))
return HttpResponseRedirect(reverse('login'))
else:
return render(request, 'loginform.html', {})

# from django.http import HttpResponse
from django.template import loader
# from .models import Member

# from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from django.views import View
from django.shortcuts import get_object_or_404

def delivery_detail(request):
model=deliverym
delivery_details = deliverym.objects.filter(delivery_emp = request.user)
# delivery_details = deliverym.objects.filter(user=request.employee)
return render(request, 'delivery.html', { 'delivery_details': delivery_details})

class LogoutView(View):
def get(self, request, *args, **kwargs):
logout(request)
return redirect('/delivery/login/')


@@ -0,0 +1,22 @@
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys


def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)


if __name__ == '__main__':
main()
Empty file.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,16 @@
"""
ASGI config for mysite project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/
"""

import os

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

application = get_asgi_application()

0 comments on commit 1db4163

Please sign in to comment.