Added facilitator form
This commit is contained in:
parent
298530599e
commit
b815899101
10 changed files with 119 additions and 4 deletions
2
.github/workflows/test-build.yml
vendored
2
.github/workflows/test-build.yml
vendored
|
|
@ -2,7 +2,7 @@ name: Test build
|
|||
|
||||
on:
|
||||
push:
|
||||
branches: [main, dev]
|
||||
branches: [main]
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
|
|
|
|||
15
housewars/admin/Facilitator.py
Normal file
15
housewars/admin/Facilitator.py
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from housewars.models import Facilitator
|
||||
|
||||
|
||||
@admin.register(Facilitator)
|
||||
class FacilitatorAdmin(admin.ModelAdmin):
|
||||
list_display = ('first_name', 'last_name', 'activity')
|
||||
|
||||
fieldsets = [
|
||||
('Personal Information', {'fields': [
|
||||
'first_name', 'last_name']}),
|
||||
('House Wars Information', {
|
||||
'fields': ['activity']}),
|
||||
]
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
from .Activity import ActivityAdmin
|
||||
from .Facilitator import Facilitator
|
||||
from .House import House
|
||||
from .PointsEntry import PointsEntry
|
||||
from .Teacher import Teacher
|
||||
|
|
|
|||
26
housewars/forms/FacilitatorForm.py
Normal file
26
housewars/forms/FacilitatorForm.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
from django.forms import ModelForm, ModelChoiceField, Select, CharField, TextInput
|
||||
|
||||
from housewars.models import Activity, Facilitator
|
||||
|
||||
|
||||
class FacilitatorForm(ModelForm):
|
||||
class Meta:
|
||||
model = Facilitator
|
||||
fields = '__all__'
|
||||
widgets = {
|
||||
'first_name': TextInput(attrs={
|
||||
'class': "form-control",
|
||||
'id': 'first-name',
|
||||
'placeholder': 'First Name'
|
||||
}),
|
||||
'last_name': TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'id': 'first-name',
|
||||
'placeholder': 'Last Name',
|
||||
}),
|
||||
'activity': Select(attrs={
|
||||
'class': 'form-select',
|
||||
'id': 'activity',
|
||||
'placeholder': 'activity'
|
||||
}),
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
from .ActivityForm import ActivityForm
|
||||
from .FacilitatorForm import FacilitatorForm
|
||||
from .PointsEntryForm import PointsEntryForm
|
||||
from .UserEntryForm import UserEntryForm
|
||||
|
|
|
|||
23
housewars/migrations/0006_facilitator.py
Normal file
23
housewars/migrations/0006_facilitator.py
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 4.0.4 on 2022-09-07 21:22
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('housewars', '0005_activity_room_number_alter_teacher_grade'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Facilitator',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('first_name', models.CharField(max_length=100)),
|
||||
('last_name', models.CharField(max_length=100)),
|
||||
('activity', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='housewars.activity')),
|
||||
],
|
||||
),
|
||||
]
|
||||
13
housewars/models/Facilitator.py
Normal file
13
housewars/models/Facilitator.py
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
from django.db import models
|
||||
from . import Activity
|
||||
|
||||
|
||||
class Facilitator(models.Model):
|
||||
first_name = models.CharField(max_length=100)
|
||||
last_name = models.CharField(max_length=100)
|
||||
activity = models.ForeignKey(
|
||||
Activity, on_delete=models.CASCADE, blank=True, null=True)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.full_clean()
|
||||
return super().save(*args, **kwargs)
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
from .Activity import Activity
|
||||
from .Award import Award
|
||||
from .Facilitator import Facilitator
|
||||
from .House import House
|
||||
from .PointsEntry import PointsEntry
|
||||
from .Quota import Quota
|
||||
|
|
|
|||
|
|
@ -21,5 +21,6 @@ from . import views
|
|||
app_name = 'housewars'
|
||||
urlpatterns = [
|
||||
path('', views.EntryCreateView.as_view(), name='signup'),
|
||||
path('points/', views.PointsEntryCreateView.as_view(), name='add_points')
|
||||
path('points/', views.PointsEntryCreateView.as_view(), name='add_points'),
|
||||
path('facilitator/', views.FacilitatorCreateView.as_view(), name='facilitator')
|
||||
]
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ from django.urls import reverse
|
|||
from django.views.generic import CreateView
|
||||
from formtools.wizard.views import SessionWizardView
|
||||
|
||||
from .forms import ActivityForm, PointsEntryForm, UserEntryForm
|
||||
from .models import Activity, Quota, PointsEntry, UserEntry
|
||||
from housewars.forms import ActivityForm, PointsEntryForm, UserEntryForm, FacilitatorForm
|
||||
from housewars.models import Activity, Quota, PointsEntry, UserEntry, Facilitator
|
||||
|
||||
FORMS = [("user", UserEntryForm),
|
||||
("activity", ActivityForm)]
|
||||
|
|
@ -84,10 +84,17 @@ class EntryCreateView(SessionWizardView):
|
|||
def get_success_url(self):
|
||||
return reverse('housewars:signup')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['title'] = 'Signup'
|
||||
context['formtitle'] = 'House Wars Signup'
|
||||
return context
|
||||
|
||||
|
||||
class PointsEntryCreateView(CreateView):
|
||||
model = PointsEntry
|
||||
form_class = PointsEntryForm
|
||||
template_name = 'housewars/general_form.html'
|
||||
|
||||
def form_valid(self, form):
|
||||
messages.success(self.request, 'Your points entry has been submitted.')
|
||||
|
|
@ -96,3 +103,30 @@ class PointsEntryCreateView(CreateView):
|
|||
|
||||
def get_success_url(self):
|
||||
return reverse('housewars:add_points')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['title'] = 'Add Points'
|
||||
context['formtitle'] = 'Add House Points'
|
||||
return context
|
||||
|
||||
|
||||
class FacilitatorCreateView(CreateView):
|
||||
model = Facilitator
|
||||
form_class = FacilitatorForm
|
||||
template_name = 'housewars/general_form.html'
|
||||
|
||||
def form_valid(self, form):
|
||||
messages.success(
|
||||
self.request, 'Your facilitator signup has been submitted.')
|
||||
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('housewars:add_points')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['title'] = 'Facilitator'
|
||||
context['formtitle'] = 'Facilitator Signup'
|
||||
return context
|
||||
|
|
|
|||
Reference in a new issue