Sin descripción

tracking_mockup2.py 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import os
  2. import django
  3. import random
  4. from datetime import datetime, timedelta
  5. # Set up Django environment
  6. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'recycle.settings')
  7. django.setup()
  8. from tracking.models import Vehicle, Trip, MaintenanceLog, Appointment, GPSData, FuelTransaction
  9. from django.contrib.auth.models import User
  10. from userprofile.models import UserProfile
  11. # Create mock data for Users and UserProfiles
  12. users_data = [
  13. {'username': 'driver1', 'password': 'password123', 'email': 'driver1@example.com', 'phone_number': '1234567890', 'address': '123 Main St', 'date_of_birth': '1990-01-01', 'idcard_no': '123456789', 'geolocation': '12.34,56.78', 'business_type': 'Logistics'},
  14. {'username': 'driver2', 'password': 'password123', 'email': 'driver2@example.com', 'phone_number': '0987654321', 'address': '456 Elm St', 'date_of_birth': '1985-05-05', 'idcard_no': '987654321', 'geolocation': '98.76,54.32', 'business_type': 'Transport'},
  15. ]
  16. users = []
  17. for data in users_data:
  18. user, created = User.objects.get_or_create(username=data['username'], defaults={'email': data['email'], 'password': data['password']})
  19. if created:
  20. user.set_password(data['password']) # Ensure the password is set correctly
  21. user.save()
  22. user_profile, created = UserProfile.objects.get_or_create(user=user, defaults={
  23. 'phone_number': data['phone_number'],
  24. 'address': data['address'],
  25. 'date_of_birth': data['date_of_birth'],
  26. 'idcard_no': data['idcard_no'],
  27. 'geolocation': data['geolocation'],
  28. 'business_type': data['business_type']
  29. })
  30. users.append(user)
  31. # Create mock data for Vehicles
  32. vehicle_data = [
  33. {'user': users[0], 'make': 'Toyota', 'model': 'Hilux', 'year': 2018, 'license_plate': 'ABC1234', 'capacity': 1000, 'status': 'available'},
  34. {'user': users[1], 'make': 'Ford', 'model': 'Ranger', 'year': 2019, 'license_plate': 'XYZ5678', 'capacity': 1200, 'status': 'in use'},
  35. {'user': users[0], 'make': 'Isuzu', 'model': 'D-Max', 'year': 2020, 'license_plate': 'LMN9101', 'capacity': 1500, 'status': 'under maintenance'},
  36. ]
  37. vehicles = [Vehicle.objects.create(**data) for data in vehicle_data]
  38. # Create mock data for Trips
  39. trip_data = [
  40. {'vehicle': vehicles[0], 'driver': users[0], 'start_location': 'Location A', 'end_location': 'Location B', 'start_time': datetime.now() - timedelta(days=1), 'end_time': datetime.now(), 'mileage': 100, 'fuel_consumption': 10},
  41. {'vehicle': vehicles[1], 'driver': users[1], 'start_location': 'Location C', 'end_location': 'Location D', 'start_time': datetime.now() - timedelta(days=2), 'end_time': datetime.now() - timedelta(days=1), 'mileage': 150, 'fuel_consumption': 15},
  42. ]
  43. trips = [Trip.objects.create(**data) for data in trip_data]
  44. # Create mock data for MaintenanceLogs
  45. maintenance_data = [
  46. {'vehicle': vehicles[2], 'date': datetime.now() - timedelta(days=10), 'description': 'Engine oil change', 'mileage': 20000},
  47. {'vehicle': vehicles[0], 'date': datetime.now() - timedelta(days=20), 'description': 'Brake pad replacement', 'mileage': 30000},
  48. ]
  49. maintenance_logs = [MaintenanceLog.objects.create(**data) for data in maintenance_data]
  50. # Create mock data for Appointments
  51. appointment_data = [
  52. {'vehicle': vehicles[0], 'start_time': datetime.now() + timedelta(days=1), 'end_time': datetime.now() + timedelta(days=1, hours=2), 'purpose': 'Pickup recycling materials'},
  53. {'vehicle': vehicles[1], 'start_time': datetime.now() + timedelta(days=2), 'end_time': datetime.now() + timedelta(days=2, hours=3), 'purpose': 'Deliver recycled goods'},
  54. ]
  55. appointments = [Appointment.objects.create(**data) for data in appointment_data]
  56. # Create mock data for GPSData
  57. gps_data = [
  58. {'vehicle': vehicles[0], 'latitude': 13.7563, 'longitude': 100.5018},
  59. {'vehicle': vehicles[1], 'latitude': 13.736717, 'longitude': 100.523186},
  60. ]
  61. gps_records = [GPSData.objects.create(**data) for data in gps_data]
  62. # Create mock data for FuelTransactions
  63. fuel_transaction_data = [
  64. {'vehicle': vehicles[0], 'date': datetime.now() - timedelta(days=1), 'amount': 50, 'price_per_liter': 1.2, 'total_cost': 60, 'fuel_card_number': '1234567890'},
  65. {'vehicle': vehicles[1], 'date': datetime.now() - timedelta(days=2), 'amount': 60, 'price_per_liter': 1.3, 'total_cost': 78, 'fuel_card_number': '0987654321'},
  66. ]
  67. fuel_transactions = [FuelTransaction.objects.create(**data) for data in fuel_transaction_data]
  68. print("Mock data created successfully!")