Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Created ModelForm for Incident model, connected ModelForm to database #28

Merged
merged 4 commits into from
Jun 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added requirements.txt
Empty file.
10 changes: 9 additions & 1 deletion src/goal3/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,15 @@
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'bootstrap4',
'bootstrap_datepicker_plus',
]

# Creating Bootstrap4 block and turning jquery to true
BOOTSTRAP4 = {
'include_jquery': True,
}

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
Expand All @@ -60,10 +67,11 @@

ROOT_URLCONF = 'goal3.urls'

#Include templates into TEMPLATES 'DIRS' as a base directory
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
Expand Down
3 changes: 2 additions & 1 deletion src/goal3/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.urls import path, include

urlpatterns = [
path('', include('usersapp.urls')),
path('admin/', admin.site.urls),
]
5 changes: 5 additions & 0 deletions src/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
asgiref==3.2.7
astroid==2.4.1
beautifulsoup4==4.9.1
colorama==0.4.3
Django==3.0.6
django-bootstrap-datepicker-plus==3.0.5
django-bootstrap4==1.1.1
django-multiselectfield==0.1.12
djangorestframework==3.11.0
isort==4.3.21
lazy-object-proxy==1.4.3
Expand All @@ -11,6 +15,7 @@ pylint==2.5.2
python-dotenv==0.13.0
pytz==2020.1
six==1.14.0
soupsieve==2.0.1
sqlparse==0.3.1
toml==0.10.1
wrapt==1.12.1
24 changes: 24 additions & 0 deletions src/templates/incident_create.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% load bootstrap4 %} {# import bootstrap4 #}
{% bootstrap_css %} {# Embed Bootstrap CSS #}
{% bootstrap_javascript jquery='full' %} {# Embed Bootstrap JS+jQuery #}


<div class="container">
<h1>Accident Form</h1>
<p>It is our collective responsibility to report an accident. By reporting accidents, relevant agencies monitor problems and identify their root causes. Reporting road accidents enable actions to be taken to reduce future ocurrences, and at LifeShield it takes about 5 minutes to report an accident.</p>
<form action="{% url 'incident_create' %}"
method="post">
{% csrf_token %}
{% bootstrap_form form %}
{{ form.media }} {# Adds date-picker required JS and CSS #}
{% buttons %}
<button type="submit" class="btn btn-primary">Submit</button>
{% endbuttons %}
</form>

<div>
{% for message in messages %}
<h3> {{message}}</h3>
{% endfor %}
</div>
<div>
310 changes: 310 additions & 0 deletions src/templates/incident_create1.html

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/templates/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<h1>LIFESHIELDS</h1>
2 changes: 2 additions & 0 deletions src/usersapp/admin.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from django.contrib import admin
from .models import Incident

# Register your models here.
admin.site.register(Incident)
13 changes: 13 additions & 0 deletions src/usersapp/forms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from bootstrap_datepicker_plus import DatePickerInput, TimePickerInput
from django.forms import ModelForm
from .models import Incident

class IncidentForm(ModelForm):
class Meta:
model = Incident
fields = ['accident_location', 'nearest_landmark', 'date_of_accident', 'time_of_accident', 'number_of_vehicles_involved', 'vehicle_type', 'if_other_vehicle_specify', 'vehicles_number_plates', 'vehicle_precrash_factors', 'number_of_damaged_vehicles', 'road_geometry', 'road_type', 'driver_precrash_factors', 'collision_type', 'number_of_victims', 'number_of_injured', 'number_of_deaths', 'category_of_victims', 'victims_age_group', 'number_of_male_victims', 'number_of_female_victims', 'number_of_child_victims', 'victims_current_location', 'if_hospital_specify', 'if_other_location_specify', 'more_accident_info']
widgets = {
'date_of_accident': DatePickerInput(), # default date-format %m/%d/%Y will be used
# 'end_date': DatePickerInput(format='%Y-%m-%d'), # specify date-frmat
'time_of_accident': TimePickerInput(),
}
158 changes: 158 additions & 0 deletions src/usersapp/migrations/0002_auto_20200528_2003.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Generated by Django 3.0.6 on 2020-05-28 19:03

from django.db import migrations, models
import multiselectfield.db.fields


class Migration(migrations.Migration):

dependencies = [
('usersapp', '0001_initial'),
]

operations = [
migrations.RenameField(
model_name='incident',
old_name='date',
new_name='date_of_accident',
),
migrations.RenameField(
model_name='incident',
old_name='description',
new_name='more_accident_info',
),
migrations.RenameField(
model_name='incident',
old_name='time',
new_name='time_of_accident',
),
migrations.RemoveField(
model_name='incident',
name='age',
),
migrations.RemoveField(
model_name='incident',
name='causes',
),
migrations.RemoveField(
model_name='incident',
name='currently_allocated_to',
),
migrations.RemoveField(
model_name='incident',
name='gender',
),
migrations.RemoveField(
model_name='incident',
name='junction_type',
),
migrations.RemoveField(
model_name='incident',
name='number_of_damage_vehicle',
),
migrations.RemoveField(
model_name='incident',
name='number_of_death',
),
migrations.RemoveField(
model_name='incident',
name='number_of_injury',
),
migrations.RemoveField(
model_name='incident',
name='traffic_lane',
),
migrations.RemoveField(
model_name='incident',
name='vehicle_involved',
),
migrations.AddField(
model_name='incident',
name='category_of_victims',
field=multiselectfield.db.fields.MultiSelectField(choices=[('Driver', 'Driver'), ('Passenger', 'Passenger'), ('Trailer', 'Trailer'), ('Motorcycle', 'Motorcyclist'), ('Tricyclist', 'Tricyclist'), ('Bicyclist', 'Bicyclist'), ('Pedestrian', 'Pedestrian')], default=0, max_length=20),
preserve_default=False,
),
migrations.AddField(
model_name='incident',
name='driver_precrash_factors',
field=multiselectfield.db.fields.MultiSelectField(choices=[('Nothing notable', 'Nothing notable'), ('Fatigue/Sleepiness', 'Fatigue/Sleepiness'), ('Sudden illness', 'Sudden illness'), ('Speeding', 'Speeding'), ('Careless overtaking', 'Careless overtaking'), ('Tailgating', 'Tailgating'), ('Sudden turn', 'Sudden turn'), ('risktaking', 'Other calculated risktaking'), ('phone while driving', 'Use of phone while driving'), ('Alcohol', 'Influence of alcohol'), ('Drug', 'Influence of drug'), ('Other distractions', 'Other distractions/inattentiveness')], default=0, max_length=30),
preserve_default=False,
),
migrations.AddField(
model_name='incident',
name='gender_of_victims',
field=multiselectfield.db.fields.MultiSelectField(choices=[('Male', 'Male'), ('Female', 'Female')], default=0, max_length=20),
preserve_default=False,
),
migrations.AddField(
model_name='incident',
name='number_of_damaged_vehicles',
field=models.IntegerField(blank=True, null=True),
),
migrations.AddField(
model_name='incident',
name='number_of_deaths',
field=models.IntegerField(blank=True, null=True),
),
migrations.AddField(
model_name='incident',
name='number_of_injured',
field=models.IntegerField(blank=True, null=True),
),
migrations.AddField(
model_name='incident',
name='number_of_vehicles_involved',
field=models.IntegerField(default=0),
preserve_default=False,
),
migrations.AddField(
model_name='incident',
name='road_geometry',
field=models.CharField(choices=[('Straight road', 'Straight road'), ('Curve', 'Curve'), ('Roundabout', 'Roundabout'), ('T-junction', 'T-junction'), ('Y-junction', 'Y-junction'), ('+-junction', '+-junction'), ('Bridge', 'Bridge'), ('Road works', 'Road works'), ('Other', 'Other')], default=0, max_length=20),
preserve_default=False,
),
migrations.AddField(
model_name='incident',
name='vehicle_precrash_factors',
field=multiselectfield.db.fields.MultiSelectField(blank=True, choices=[('Tyre burst', 'Tyre burst'), ('Mechanical deficiency', 'Mechanical deficiency'), ('Overloaded', 'Overloaded'), ('Defective light', 'Defective light'), ('Nothing notable', 'Nothing notable')], max_length=30, null=True),
),
migrations.AddField(
model_name='incident',
name='victims_age_group',
field=multiselectfield.db.fields.MultiSelectField(choices=[('Baby', 'Baby'), ('Toddler', 'Toddler'), ('Child', 'Child'), ('Teenager', 'Teenager'), ('Adult', 'Adult'), ('Middle aged', 'Middle aged'), ('Elderly', 'Elderly')], default=0, max_length=20),
preserve_default=False,
),
migrations.AddField(
model_name='incident',
name='victims_current_location',
field=multiselectfield.db.fields.MultiSelectField(choices=[(1, 'Accident Scene'), (2, 'Hospital'), (3, 'Other')], default=0, max_length=50),
preserve_default=False,
),
migrations.AlterField(
model_name='incident',
name='collision_type',
field=models.CharField(choices=[('Mv/mv head on', 'Moving vehicles, head on'), ('Mv/mv rear end', 'Moving vehicles, rear end'), ('Mv/mv intersecting', 'Moving vehicles, intersecting'), ('Mv/mv overtake', 'Moving vehicles, overtake'), ('Mv/mv turn', 'Moving vehicles, turn'), ('Single mv hit object', 'Single moving vehicle, hit object'), ('Single mv run off', 'Single moving vehicle, run off'), ('Single mv falling off', 'Single moving vehicle, falling off'), ('Mv/pedestrian', 'Moving vehicle with pedestrian'), ('Mv/bicyclist', 'Moving vehicle with pedestrian'), ('Other', 'Other')], default=0, max_length=100),
preserve_default=False,
),
migrations.AlterField(
model_name='incident',
name='location',
field=models.CharField(choices=[('Abia', 'Abia'), ('Adamawa', 'Adamawa'), ('Akwa Ibom', 'Akwa Ibom'), ('Anambra', 'Anambra'), ('Bauchi', 'Bauchi'), ('Benue', 'Benue'), ('Borno', 'Borno'), ('Cross River', 'Cross River'), ('Damaturu', 'Damaturu'), ('Ebonyi', 'Ebonyi'), ('Enugu', 'Enugu'), ('Lagos', 'Lagos'), ('Ogun', 'Ogun')], max_length=45),
),
migrations.AlterField(
model_name='incident',
name='number_of_victims',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='incident',
name='road_type',
field=models.CharField(choices=[('Dual carriageway', 'Dual carriageway'), ('Single carriageway', 'Single carriageway'), ('Expressway', 'Expressway'), ('Street', 'Street'), ('Other', 'Other')], default=0, max_length=20),
preserve_default=False,
),
migrations.AlterField(
model_name='incident',
name='vehicle_type',
field=multiselectfield.db.fields.MultiSelectField(choices=[('Car saloon', 'Car saloon'), ('Microbus', 'Microbus (< 10 seater)'), ('Minibus', 'Minibus (< 15 seater)'), ('Coaster', 'Coaster (< 15 > 35 seater)'), ('Bus', 'Bus (> 35 seater)'), ('Pickup', 'Pickup'), ('SUV', 'SUV (Jeep'), ('Light lorry', 'Light lorry (< 3.5 t)'), ('Heavy lorry', 'Heavy lorry (> 3.5 t)'), ('Tanker', 'Tanker'), ('Trailer', 'Trailer'), ('Motorcycle', 'Motorcycle'), ('Tricycle', 'Tricycle'), ('Bicycle', 'Bicycle'), ('Unknown', 'Unknown')], max_length=20),
),
]
49 changes: 49 additions & 0 deletions src/usersapp/migrations/0003_auto_20200529_0239.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Generated by Django 3.0.6 on 2020-05-29 01:39

from django.db import migrations, models
import multiselectfield.db.fields


class Migration(migrations.Migration):

dependencies = [
('usersapp', '0002_auto_20200528_2003'),
]

operations = [
migrations.AlterField(
model_name='incident',
name='category_of_victims',
field=multiselectfield.db.fields.MultiSelectField(choices=[('Driver', 'Driver'), ('Passenger', 'Passenger'), ('Trailer', 'Trailer'), ('Motorcycle', 'Motorcyclist'), ('Tricyclist', 'Tricyclist'), ('Bicyclist', 'Bicyclist'), ('Pedestrian', 'Pedestrian')], max_length=30),
),
migrations.AlterField(
model_name='incident',
name='collision_type',
field=models.CharField(choices=[('Mv/mv head on', 'Moving vehicles, head on'), ('Mv/mv rear end', 'Moving vehicles, rear end'), ('Mv/mv intersecting', 'Moving vehicles, intersecting'), ('Mv/mv overtake', 'Moving vehicles, overtake'), ('Mv/mv turn', 'Moving vehicles, turn'), ('Single mv hit object', 'Single moving vehicle, hit object'), ('Single mv run off', 'Single moving vehicle, run off'), ('Single mv falling off', 'Single moving vehicle, falling off'), ('Mv/pedestrian', 'Moving vehicle with pedestrian'), ('Mv/bicyclist', 'Moving vehicle with pedestrian'), ('Other', 'Other')], max_length=70),
),
migrations.AlterField(
model_name='incident',
name='driver_precrash_factors',
field=multiselectfield.db.fields.MultiSelectField(choices=[('Nothing notable', 'Nothing notable'), ('Fatigue/Sleepiness', 'Fatigue/Sleepiness'), ('Sudden illness', 'Sudden illness'), ('Speeding', 'Speeding'), ('Careless overtaking', 'Careless overtaking'), ('Tailgating', 'Tailgating'), ('Sudden turn', 'Sudden turn'), ('risktaking', 'Other calculated risktaking'), ('phone while driving', 'Use of phone while driving'), ('Alcohol', 'Influence of alcohol'), ('Drug', 'Influence of drug'), ('Other distractions', 'Other distractions/inattentiveness')], max_length=50),
),
migrations.AlterField(
model_name='incident',
name='road_geometry',
field=models.CharField(choices=[('Straight road', 'Straight road'), ('Curve', 'Curve'), ('Roundabout', 'Roundabout'), ('T-junction', 'T-junction'), ('Y-junction', 'Y-junction'), ('+-junction', '+-junction'), ('Bridge', 'Bridge'), ('Road works', 'Road works'), ('Other', 'Other')], max_length=30),
),
migrations.AlterField(
model_name='incident',
name='road_type',
field=models.CharField(choices=[('Dual carriageway', 'Dual carriageway'), ('Single carriageway', 'Single carriageway'), ('Expressway', 'Expressway'), ('Street', 'Street'), ('Other', 'Other')], max_length=30),
),
migrations.AlterField(
model_name='incident',
name='vehicle_precrash_factors',
field=multiselectfield.db.fields.MultiSelectField(blank=True, choices=[('Tyre burst', 'Tyre burst'), ('Mechanical deficiency', 'Mechanical deficiency'), ('Overloaded', 'Overloaded'), ('Defective light', 'Defective light'), ('Nothing notable', 'Nothing notable')], max_length=50, null=True),
),
migrations.AlterField(
model_name='incident',
name='vehicle_type',
field=multiselectfield.db.fields.MultiSelectField(choices=[('Car saloon', 'Car saloon'), ('Microbus', 'Microbus (< 10 seater)'), ('Minibus', 'Minibus (< 15 seater)'), ('Coaster', 'Coaster (< 15 > 35 seater)'), ('Bus', 'Bus (> 35 seater)'), ('Pickup', 'Pickup'), ('SUV', 'SUV (Jeep'), ('Light lorry', 'Light lorry (< 3.5 t)'), ('Heavy lorry', 'Heavy lorry (> 3.5 t)'), ('Tanker', 'Tanker'), ('Trailer', 'Trailer'), ('Motorcycle', 'Motorcycle'), ('Tricycle', 'Tricycle'), ('Bicycle', 'Bicycle'), ('Unknown', 'Unknown')], max_length=50),
),
]
38 changes: 38 additions & 0 deletions src/usersapp/migrations/0004_auto_20200530_1155.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Generated by Django 3.0.6 on 2020-05-30 10:55

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('usersapp', '0003_auto_20200529_0239'),
]

operations = [
migrations.AddField(
model_name='incident',
name='if_hospital_specify',
field=models.CharField(blank=True, max_length=45, null=True),
),
migrations.AddField(
model_name='incident',
name='if_other_location_specify',
field=models.CharField(blank=True, max_length=45, null=True),
),
migrations.AddField(
model_name='incident',
name='number_of_child_victims',
field=models.IntegerField(blank=True, null=True),
),
migrations.AddField(
model_name='incident',
name='number_of_female_victims',
field=models.IntegerField(blank=True, null=True),
),
migrations.AddField(
model_name='incident',
name='number_of_male_victims',
field=models.IntegerField(blank=True, null=True),
),
]
18 changes: 18 additions & 0 deletions src/usersapp/migrations/0005_incident_vehicles_number_plates.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 3.0.6 on 2020-05-30 18:15

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('usersapp', '0004_auto_20200530_1155'),
]

operations = [
migrations.AddField(
model_name='incident',
name='vehicles_number_plates',
field=models.CharField(blank=True, max_length=45, null=True),
),
]
Loading