Skip to content

Commit

Permalink
Merge pull request #117 from gm3dmo/dig4
Browse files Browse the repository at this point in the history
Adding soldiers form
  • Loading branch information
gm3dmo authored Nov 14, 2023
2 parents 2e50df1 + 0e2df7b commit 8909699
Show file tree
Hide file tree
Showing 6 changed files with 109 additions and 1 deletion.
7 changes: 7 additions & 0 deletions cmp/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from .models import Rank
from .models import Cemetery
from .models import PowCamp
from .models import Soldier


class CustomUserCreationForm(UserCreationForm):
Expand Down Expand Up @@ -44,3 +45,9 @@ class Meta:
model = Rank
fields = "__all__"


class editSoldierForm(forms.ModelForm):
class Meta:
model = Soldier
fields = "__all__"

6 changes: 6 additions & 0 deletions cmp/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,10 @@
path('pow-camps/', views.powcamps, name='powcamps'),
path("mgmt/pow-camps", views.edit_powcamps, name="powcamps"),

# Soldiers
path('soldiers/', views.soldiers, name='soldiers'),
path("mgmt/soldiers", views.edit_soldiers, name="soldiers"),
path("mgmt/soldiers/<int:soldier_id>/", views.detail_soldiers, name="soldiers"),
path("mgmt/soldiers/edit/<int:soldier_id>", views.edit_soldiers, name="edit-soldiers"),

]
28 changes: 27 additions & 1 deletion cmp/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
from .models import PowCamp
from cmp.forms import editPowCampForm

from .models import Soldier
from cmp.forms import editSoldierForm


def powcamps(request):
powcamps = PowCamp.objects.all()
Expand All @@ -27,6 +30,11 @@ def countries(request):
return render(request, 'cmp/countries.html', {'countries': countries})


def soldiers(request):
soldiers = Soldier.objects.all()
return render(request, 'cmp/soldiers.html', {'soldiers': soldiers})


def ranks(request):
ranks = Rank.objects.all()
return render(request, 'cmp/ranks.html', {'ranks': ranks})
Expand Down Expand Up @@ -271,16 +279,34 @@ def edit_countries(request, country_id):
return render(request, "cmp/edit-countries.html", {"form": form})


def edit_soldiers(request, soldier_id):
post = request.POST
form = editSoldierForm(post or None)
if soldier_id:
soldier = Soldier.objects.get(id=soldier_id)
form = editSoldierForm(post or None, instance=soldier)
if post and form.is_valid():
form.save()
return HttpResponse("Soldier Added")
return render(request, "cmp/edit-soldiers.html", {"form": form})


def detail_countries(request, country_id):
# get or return a 404
country = get_object_or_404(Country, pk=country_id)
return render(request, "cmp/detail-countries.html", {"country": country})


def detail_soldiers(request, soldier_id):
# get or return a 404
soldier = get_object_or_404(Soldier, pk=soldier_id)
return render(request, "cmp/detail-soldiers.html", {"soldier": soldier})


def edit_ranks(request):
post = request.POST
form = editRankForm(post or None)
if post and form.is_valid():
form.save()
return HttpResponse("Rank Added")
return render(request, "cmp/edit-ranks.html", {"form": form})
return render(request, "cmp/edit-ranks.html", {"form": form})
28 changes: 28 additions & 0 deletions templates/cmp/detail-soldiers.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{% extends "base.html" %}
{% load static crispy_forms_tags %}
{% block title %}Soldiers{% endblock %}
{% block content %}

<h1>Soldier Details</h1>

<table class="table table-borderless table-lg">
<thead>
<tr>
<th>Surname</th>
<th>Initials</th>
<th>Rank</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ soldier.surname }}</td>
<td>{{ soldier.initials}}</td>
<td>{{ soldier.rank}}</td>
<td>
<a class="btn btn-primary btn-sm" href="{% url 'edit-soldiers' soldier_id=soldier.id %}">Edit
</a>
</td>
</tr>
</table>

{% endblock %}
17 changes: 17 additions & 0 deletions templates/cmp/edit-soldiers.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{% extends "base.html" %}
{% load static crispy_forms_tags %}
{% block title %}Soldiers Form{% endblock %}
{% block content %}

<div>
<form method="POST">
{% csrf_token %}
{{ form.management_form }}
{{ form.errors }}
{{form | crispy}}
<button type="submit" class="btn btn-primary">Save</button>
</form>

</div>

{% endblock %}
24 changes: 24 additions & 0 deletions templates/cmp/soldiers.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% extends "base.html" %}
{% load static crispy_forms_tags %}
{% block title %}Soldiers{% endblock %}
{% block content %}

<h1>Soldiers</h1>

<table class="table table-hover table-borderless table-lg">
<thead>
<tr>
<th><h2>Surname</h2></th>
</tr>
</thead>
<tbody>
{% for soldier in soldiers|dictsort:"surname" %}
<tr>
<td>{{ soldier.surname }}</td>
</tr>
{% endfor %}
</tbody>
</table>


{% endblock %}

0 comments on commit 8909699

Please sign in to comment.