diff --git a/.gitignore b/.gitignore index 0396a96c..fe553539 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ tags env/ docs/_build/* .DS_Store +.python-version diff --git a/accounts/views.py b/accounts/views.py index b8342525..9010ab18 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -28,12 +28,13 @@ from .models import Officer, ProfilePhoto, UserPreferences -class UserAddView(mixins.HasPermMixin, generic.CreateView): +class UserAddView(mixins.SetFormMsgMixin, mixins.HasPermMixin, generic.CreateView): """Add a new user manually (should rarely be used - LDAP does this for us)""" form_class = forms.UserAddForm model = get_user_model() perms = 'accounts.add_user' template_name = 'form_crispy.html' + msg = "Add User Manually" def get_success_url(self): return reverse('accounts:detail', args=(self.object.id,)) @@ -367,11 +368,12 @@ def shame(request): return render(request, 'users_shame.html', context) -class PasswordSetView(generic.FormView): +class PasswordSetView(mixins.SetFormMsgMixin, generic.FormView): """Set a non-SSO login password""" model = get_user_model() user = None template_name = 'form_crispy.html' + msg = "Set Non-SSO Login Password" def form_valid(self, form): form.save() @@ -445,6 +447,7 @@ def user_preferences(request): def officer_photos(request, pk=None): """Update officer headshot (displayed on the main LNL website about page)""" context = {} + context['msg'] = "Update Officer Photo" if pk is None: pk = request.user.pk officer = get_object_or_404(get_user_model(), pk=pk) diff --git a/devices/forms.py b/devices/forms.py index 8f6bcd90..6bd5ea54 100644 --- a/devices/forms.py +++ b/devices/forms.py @@ -43,7 +43,7 @@ def __init__(self, *args, **kwargs): self.helper.form_class = "form-horizontal col-md-6" self.helper.layout = Layout( Fieldset( - 'New Managed Device', + '', #leaving as empty string so page title can be provided by "msg" context variable in the crispy form Div( HTML('

WARNING: Please read the ' 'following statements carefully. The MDM is designed for use with LNL equipment only. Failure ' @@ -1401,7 +1401,8 @@ def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.form_class = "form-horizontal col-md-6" self.helper.layout = Layout( - Fieldset(title, 'name', 'version', 'developer', 'description', 'developer_website'), + #leaving first arg as empty string so page title can be provided by "msg" context variable in the crispy form: + Fieldset('', 'name', 'version', 'developer', 'description', 'developer_website'), FormActions(Submit('save', "Submit")) ) super(NewAppForm, self).__init__(*args, **kwargs) @@ -1436,7 +1437,7 @@ def __init__(self, *args, **kwargs): self.helper.form_class = "form-horizontal col-md-6" self.helper.layout = Layout( Fieldset( - 'Application Info', + '', #leaving as empty string so page title can be provided by "msg" context variable in the crispy form Div( 'name', 'identifier', @@ -1473,11 +1474,12 @@ class AppMergeForm(forms.Form): def __init__(self, *args, **kwargs): pk = kwargs.pop('pk') - app_name = MacOSApp.objects.get(pk=pk).name + #app_name = MacOSApp.objects.get(pk=pk).name self.helper = FormHelper() self.helper.form_class = "form-horizontal col-md-6" self.helper.layout = Layout( - Fieldset('Merge ' + app_name + ' into...', 'options'), + #leaving first arg as empty string so page title can be provided by "msg" context variable in the crispy form + Fieldset('', 'options'), FormActions(Submit('save', 'Merge')) ) super(AppMergeForm, self).__init__(*args, **kwargs) diff --git a/devices/views.py b/devices/views.py index 47116d9e..64b41b15 100644 --- a/devices/views.py +++ b/devices/views.py @@ -142,6 +142,7 @@ def install_client(request): context['form'] = form else: context['form'] = ClientForm() + context['msg'] = "New Managed Device" return render(request, 'form_crispy.html', context) @@ -697,6 +698,7 @@ def generate_profile(request, pk=0): "if (this.value == 'default') {$('#div_id_removal_date').hide();" \ "$('#div_id_removal_period').hide();}else{$('#div_id_removal_date').show();" \ "$('#div_id_removal_period').show();}});$('#id_auto_remove').change();});" + context['msg'] = "Manage Configuration Profile" return render(request, 'form_crispy.html', context) @@ -917,6 +919,7 @@ def add_app(request): else: form = NewAppForm(title=title, request_user=request.user) context['form'] = form + context['msg'] = title return render(request, 'form_crispy.html', context) @@ -970,6 +973,7 @@ def update_app_info(request, pk): else: form = UpdateAppForm(instance=app) context['form'] = form + context['msg'] = "Application Info" return render(request, 'form_crispy.html', context) @@ -1007,6 +1011,8 @@ def merge_app(request, pk): else: form = AppMergeForm(pk=pk) context['form'] = form + app_name = MacOSApp.objects.get(pk=pk).name + context['msg'] = 'Merge ' + app_name + ' into...' return render(request, 'form_crispy.html', context) diff --git a/events/views/flow.py b/events/views/flow.py index 7d22928c..f87264b5 100644 --- a/events/views/flow.py +++ b/events/views/flow.py @@ -1149,7 +1149,7 @@ class CCRDelete(SetFormMsgMixin, HasPermOrTestMixin, LoginRequiredMixin, DeleteV """ Delete a crew chief report """ model = CCReport template_name = "form_delete_cbv.html" - msg = "Deleted Crew Chief Report" + msg = "Delete Crew Chief Report" perms = 'events.delete_ccreport' def user_passes_test(self, request, *args, **kwargs): @@ -1244,10 +1244,10 @@ def get_success_url(self): return reverse("events:detail", args=(self.kwargs['event'],)) + "#billing" -class BillingDelete(HasPermMixin, LoginRequiredMixin, DeleteView): +class BillingDelete(SetFormMsgMixin, HasPermMixin, LoginRequiredMixin, DeleteView): model = Billing template_name = "form_delete_cbv.html" - msg = "Deleted Bill" + msg = "Delete Bill" perms = 'events.bill_event' def dispatch(self, request, *args, **kwargs): @@ -1317,7 +1317,7 @@ def get_success_url(self): return reverse("events:multibillings:list") -class MultiBillingDelete(HasPermMixin, LoginRequiredMixin, DeleteView): +class MultiBillingDelete(SetFormMsgMixin, HasPermMixin, LoginRequiredMixin, DeleteView): model = MultiBilling template_name = "form_delete_cbv.html" msg = "Delete MultiBill" diff --git a/events/views/list.py b/events/views/list.py index e1c94ce4..f2bbe7d1 100644 --- a/events/views/list.py +++ b/events/views/list.py @@ -13,7 +13,7 @@ from django.utils.http import urlencode from django.utils.timezone import make_aware -from helpers.mixins import HasPermMixin, LoginRequiredMixin +from helpers.mixins import HasPermMixin, LoginRequiredMixin, SetFormMsgMixin from events.models import BaseEvent, Event2019, Category, MultiBilling, Workshop, WorkshopDate from events.forms import WorkshopForm, WorkshopDatesForm @@ -963,6 +963,7 @@ def workshop_dates(request, pk): formset.save() return HttpResponseRedirect(reverse("events:workshops:list")) context['formset'] = formset + context['msg'] = "Workshop Dates for \"" + workshop.name + "\"" return render(request, 'formset_workshop_dates.html', context) @@ -974,7 +975,7 @@ def workshops_list(request): return render(request, 'workshops_list.html', {'workshops': workshops}) -class DeleteWorkshop(LoginRequiredMixin, HasPermMixin, DeleteView): +class DeleteWorkshop(SetFormMsgMixin, LoginRequiredMixin, HasPermMixin, DeleteView): """ Delete a series of workshops """ model = Workshop template_name = "form_delete_cbv.html" diff --git a/meetings/views.py b/meetings/views.py index 267b064c..38878097 100644 --- a/meetings/views.py +++ b/meetings/views.py @@ -16,7 +16,7 @@ from email.encoders import encode_base64 from helpers.util import curry_class -from helpers.mixins import HasPermMixin, LoginRequiredMixin +from helpers.mixins import HasPermMixin, LoginRequiredMixin, SetFormMsgMixin from data.views import serve_file from emails.generators import generate_notice_cc_email, generate_notice_email, DefaultLNLEmailGenerator from events.forms import CCIForm @@ -240,7 +240,7 @@ def newattendance(request): return render(request, 'form_crispy_meetings.html', context) -class DeleteMeeting(LoginRequiredMixin, HasPermMixin, DeleteView): +class DeleteMeeting(SetFormMsgMixin, LoginRequiredMixin, HasPermMixin, DeleteView): """ Delete a meeting """ model = Meeting template_name = "form_delete_cbv.html" diff --git a/members/forms.py b/members/forms.py index 055df5cb..8c3d6eda 100644 --- a/members/forms.py +++ b/members/forms.py @@ -15,7 +15,6 @@ def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.help_text_inline = True self.helper.layout = Layout( - HTML('

Record a Training

'), 'training_type', 'date', 'trainer', @@ -69,7 +68,7 @@ def __init__(self, *args, **kwargs): self.helper = FormHelper() self.helper.help_text_inline = True self.helper.layout = Layout( - HTML('

Edit notes on {} for {}

'.format(self.instance.person, self.instance.training)), + HTML('

Edit notes on {} for {}

'.format(self.instance.person, self.instance.training)), 'notes', FormActions( Submit('save', 'Save'), diff --git a/members/views.py b/members/views.py index 2120c4ae..4c300fe1 100644 --- a/members/views.py +++ b/members/views.py @@ -65,7 +65,7 @@ def enter_training(request): return HttpResponseRedirect(reverse('members:training:list')) else: form = TrainingForm() - return render(request, 'form_crispy.html', {'form': form}) + return render(request, 'form_crispy.html', {'form': form, 'msg': "Record a Training"}) @login_required @@ -84,7 +84,7 @@ def trainee_notes(request, pk): return HttpResponseRedirect(reverse('accounts:detail', args=(trainee.person.pk,))) else: form = TraineeNotesForm(instance=trainee) - return render(request, 'form_crispy.html', {'form': form}) + return render(request, 'form_crispy.html', {'form': form, 'msg':"Edit Training Notes"}) @login_required diff --git a/projection/views.py b/projection/views.py index 11d5f86c..91d5b107 100644 --- a/projection/views.py +++ b/projection/views.py @@ -13,7 +13,7 @@ from django.views.generic.edit import CreateView, DeleteView, FormView from django.urls.base import reverse -from helpers.mixins import HasPermMixin, LoginRequiredMixin +from helpers.mixins import HasPermMixin, LoginRequiredMixin, SetFormMsgMixin from projection.forms import (BulkCreateForm, BulkUpdateForm, DateEntryFormSetBase, ProjectionistForm, ProjectionistUpdateForm, PITRequestForm, PITRequestAdminForm, PITFormset) from projection.models import PITLevel, Projectionist, PitRequest, PitInstance @@ -83,7 +83,7 @@ def projection_update(request, id): return render(request, 'form_crispy_projection.html', context) -class ProjectionCreate(LoginRequiredMixin, HasPermMixin, CreateView): +class ProjectionCreate(SetFormMsgMixin, LoginRequiredMixin, HasPermMixin, CreateView): """ Add a new projectionist """ perms = 'projection.edit_pits' @@ -116,6 +116,7 @@ def get_context_data(self, **kwargs): model = Projectionist template_name = "form_crispy_projection.html" + msg = "Add Projectionist" form_class = ProjectionistForm # success_url = reverse("projection:list") @@ -124,9 +125,10 @@ def success_url(self): return reverse("projection:grid") -class BulkUpdateView(LoginRequiredMixin, HasPermMixin, FormView): +class BulkUpdateView(SetFormMsgMixin, LoginRequiredMixin, HasPermMixin, FormView): """ Update a PIT for multiple projectionists at the same time """ template_name = "form_crispy_cbv.html" + msg = "Bulk Update Projectionists" form_class = BulkUpdateForm perms = 'projection.edit_pits' @@ -141,11 +143,11 @@ def form_valid(self, form): return super(BulkUpdateView, self).form_valid(form) -class ProjectionistDelete(LoginRequiredMixin, HasPermMixin, DeleteView): +class ProjectionistDelete(SetFormMsgMixin, LoginRequiredMixin, HasPermMixin, DeleteView): """ Remove a projectionist (does not remove the associated user) """ model = Projectionist template_name = "form_delete_cbv.html" - msg = "Deleted Projectionist" + msg = "Delete Projectionist" perms = 'projection.edit_pits' def get_success_url(self): diff --git a/site_tmpl/access_log.html b/site_tmpl/access_log.html index 0ea3a22a..a4a7b7a0 100644 --- a/site_tmpl/access_log.html +++ b/site_tmpl/access_log.html @@ -1,4 +1,5 @@ {% extends 'base_admin.html' %} +{% block title %}{{title}} | Lens and Lights at WPI{% endblock %} {% block content %}

{{ title }}


diff --git a/site_tmpl/admin.html b/site_tmpl/admin.html index 90f3c2c6..fe4847cc 100644 --- a/site_tmpl/admin.html +++ b/site_tmpl/admin.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load tz %} {% load permissionif %} +{% block title %}Database Home | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/default.html b/site_tmpl/default.html index 787e1795..b4a32f8c 100644 --- a/site_tmpl/default.html +++ b/site_tmpl/default.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}{{title}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/email_tools.html b/site_tmpl/email_tools.html index c1dba12a..95a35745 100644 --- a/site_tmpl/email_tools.html +++ b/site_tmpl/email_tools.html @@ -1,6 +1,8 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}Communication Tools | Lens and Lights at WPI{% endblock %} + {% block extras %} {% endblock %} diff --git a/site_tmpl/event_review.html b/site_tmpl/event_review.html index cc6c610e..1843cb19 100644 --- a/site_tmpl/event_review.html +++ b/site_tmpl/event_review.html @@ -2,6 +2,7 @@ {% load markdown_deux_tags %} {% load crispy_forms_tags %} +{% block title %}{{ h2 }}: {{ event.event_name }} | Lens and Lights at WPI{% endblock %} {% block content %}

{{ h2 }}

diff --git a/site_tmpl/events.html b/site_tmpl/events.html index 7c0bc2b4..57d3e714 100644 --- a/site_tmpl/events.html +++ b/site_tmpl/events.html @@ -5,6 +5,7 @@ {% block extras %} {% include 'js_event_checkboxes.tmpl' %} {% endblock %} +{% block title %}{{h2}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/events_cal.html b/site_tmpl/events_cal.html index dc2aad57..8c21a232 100644 --- a/site_tmpl/events_cal.html +++ b/site_tmpl/events_cal.html @@ -6,6 +6,8 @@ {% bootstrap_calendar_css %} {% endblock %} +{% block title %}{{ h2 }} Calendar | Lens and Lights at WPI{% endblock %} + {% block content %}
diff --git a/site_tmpl/events_public.html b/site_tmpl/events_public.html index 1c2016ea..a3f30185 100644 --- a/site_tmpl/events_public.html +++ b/site_tmpl/events_public.html @@ -1,6 +1,8 @@ {% extends 'base_admin.html' %} {% load bootstrap_calendar %} +{% block title %}Ongoing and Future Events | Lens and Lights at WPI{% endblock %} + {% block extras %} {% url 'cal:api-public' as bootcal_endpoint %} {% bootstrap_calendar_js events_url=bootcal_endpoint %} diff --git a/site_tmpl/events_search_results.html b/site_tmpl/events_search_results.html index 94d6e400..a396abf8 100644 --- a/site_tmpl/events_search_results.html +++ b/site_tmpl/events_search_results.html @@ -2,6 +2,7 @@ {% block extras %} {% include 'js_event_checkboxes.tmpl' %} {% endblock %} +{% block title %}Event Search: {{q}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/form_cancel_request.html b/site_tmpl/form_cancel_request.html index d7f93369..c071dc44 100644 --- a/site_tmpl/form_cancel_request.html +++ b/site_tmpl/form_cancel_request.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}Cancel PIT Request | Lens and Lights at WPI{% endblock %} {% block content %}

Are you sure you want to cancel this request?

{% csrf_token %} diff --git a/site_tmpl/form_crispy.html b/site_tmpl/form_crispy.html index 04f0bdcc..c8fe1e6f 100644 --- a/site_tmpl/form_crispy.html +++ b/site_tmpl/form_crispy.html @@ -1,6 +1,8 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} | Lens and Lights at WPI{% endblock %} + {% block content %}
diff --git a/site_tmpl/form_crispy_approval.html b/site_tmpl/form_crispy_approval.html index 0a70ee69..c2cc2ab1 100644 --- a/site_tmpl/form_crispy_approval.html +++ b/site_tmpl/form_crispy_approval.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/form_crispy_bulk_projection_done.html b/site_tmpl/form_crispy_bulk_projection_done.html index 604a8934..2d05f640 100644 --- a/site_tmpl/form_crispy_bulk_projection_done.html +++ b/site_tmpl/form_crispy_bulk_projection_done.html @@ -1,5 +1,7 @@ {% extends 'base_admin.html' %} +{% block title %}Added Bulk Movies | Lens and Lights at WPI{% endblock %} + {% block content %}
diff --git a/site_tmpl/form_crispy_cbv.html b/site_tmpl/form_crispy_cbv.html index 5a4d397f..2956a580 100644 --- a/site_tmpl/form_crispy_cbv.html +++ b/site_tmpl/form_crispy_cbv.html @@ -1,6 +1,8 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} | Lens and Lights at WPI{% endblock %} + {% block content %}
diff --git a/site_tmpl/form_crispy_event.html b/site_tmpl/form_crispy_event.html index ec02abd7..19687d91 100644 --- a/site_tmpl/form_crispy_event.html +++ b/site_tmpl/form_crispy_event.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{ msg }} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/form_crispy_meetings.html b/site_tmpl/form_crispy_meetings.html index 0d978e6f..67cf8301 100644 --- a/site_tmpl/form_crispy_meetings.html +++ b/site_tmpl/form_crispy_meetings.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{ msg }} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/form_crispy_projection.html b/site_tmpl/form_crispy_projection.html index f804a015..790b3312 100644 --- a/site_tmpl/form_crispy_projection.html +++ b/site_tmpl/form_crispy_projection.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/form_crispy_survey.html b/site_tmpl/form_crispy_survey.html index b5b7899a..52ccb5a7 100644 --- a/site_tmpl/form_crispy_survey.html +++ b/site_tmpl/form_crispy_survey.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}Post-Event Survey | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/form_crispy_workday.html b/site_tmpl/form_crispy_workday.html index 167ddaff..bec8cd43 100644 --- a/site_tmpl/form_crispy_workday.html +++ b/site_tmpl/form_crispy_workday.html @@ -2,6 +2,7 @@ {% load markdown_deux_tags %} {% load crispy_forms_tags %} +{% block title %}Bill Payment Form | Lens and Lights at WPI{% endblock %} {% block content %} diff --git a/site_tmpl/form_delete_cbv.html b/site_tmpl/form_delete_cbv.html index 5295c4b0..90580ce8 100644 --- a/site_tmpl/form_delete_cbv.html +++ b/site_tmpl/form_delete_cbv.html @@ -1,6 +1,8 @@ {% extends 'base_admin.html' %} +{% block title %}{{msg}} | Lens and Lights at WPI{% endblock %} {% block content %} +

{{msg}}

Are you sure you want to delete {{object}}?

{% csrf_token %} diff --git a/site_tmpl/form_rental.html b/site_tmpl/form_rental.html index 5975a81b..4b5a3a73 100644 --- a/site_tmpl/form_rental.html +++ b/site_tmpl/form_rental.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/formset_crispy_arbitrary.html b/site_tmpl/formset_crispy_arbitrary.html index 9eba1f1e..b2cec96c 100644 --- a/site_tmpl/formset_crispy_arbitrary.html +++ b/site_tmpl/formset_crispy_arbitrary.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} for "{{event}}" | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/formset_crispy_attachments.html b/site_tmpl/formset_crispy_attachments.html index 2162b330..74256e5a 100644 --- a/site_tmpl/formset_crispy_attachments.html +++ b/site_tmpl/formset_crispy_attachments.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}Attachments for "{{event}}" | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/formset_crispy_extras.html b/site_tmpl/formset_crispy_extras.html index fed91a5f..0a2b9822 100644 --- a/site_tmpl/formset_crispy_extras.html +++ b/site_tmpl/formset_crispy_extras.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} for "{{event}}" | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/formset_crispy_helpers.html b/site_tmpl/formset_crispy_helpers.html index 357173bf..8cff3687 100644 --- a/site_tmpl/formset_crispy_helpers.html +++ b/site_tmpl/formset_crispy_helpers.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}Crew Chiefs for "{{event}}" | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/formset_generic.html b/site_tmpl/formset_generic.html index c09c4c76..0b376a2b 100644 --- a/site_tmpl/formset_generic.html +++ b/site_tmpl/formset_generic.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/formset_hours_bulk.html b/site_tmpl/formset_hours_bulk.html index 8ca916c1..efb43f0f 100644 --- a/site_tmpl/formset_hours_bulk.html +++ b/site_tmpl/formset_hours_bulk.html @@ -1,10 +1,11 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} for "{{event}}" | Lens and Lights at WPI{% endblock %} {% block content %}
-

{{msg }} Crew Chiefs for "{{ event }}"

+

{{msg }} for "{{ event }}"

{% csrf_token %} {{ formset.management_form }} diff --git a/site_tmpl/formset_workshop_dates.html b/site_tmpl/formset_workshop_dates.html index 2ffc6415..906f2cfe 100644 --- a/site_tmpl/formset_workshop_dates.html +++ b/site_tmpl/formset_workshop_dates.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{msg}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/inventory/checkin_summary.html b/site_tmpl/inventory/checkin_summary.html index 5fb5a563..aeda77d0 100644 --- a/site_tmpl/inventory/checkin_summary.html +++ b/site_tmpl/inventory/checkin_summary.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}Checkin Receipt | Lens and Lights at WPI{% endblock %} {% block content %}

Check in more items

The information below has been emailed to you.

diff --git a/site_tmpl/inventory/checkout_summary.html b/site_tmpl/inventory/checkout_summary.html index f11d595a..18a8a469 100644 --- a/site_tmpl/inventory/checkout_summary.html +++ b/site_tmpl/inventory/checkout_summary.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}Checkout Receipt | Lens and Lights at WPI{% endblock %} {% block content %}

Check out more items

The information below has been emailed to you.

diff --git a/site_tmpl/laptops/laptop_history.html b/site_tmpl/laptops/laptop_history.html index d7911da3..117067fe 100644 --- a/site_tmpl/laptops/laptop_history.html +++ b/site_tmpl/laptops/laptop_history.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}Laptop History: {{ laptop }} | Lens and Lights at WPI{% endblock %} {% block content %}

Laptop History: {{ laptop }}


diff --git a/site_tmpl/laptops/laptops_list.html b/site_tmpl/laptops/laptops_list.html index fd35145a..b677f483 100644 --- a/site_tmpl/laptops/laptops_list.html +++ b/site_tmpl/laptops/laptops_list.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}Laptops | Lens and Lights at WPI{% endblock %} {% block content %}

Laptops


diff --git a/site_tmpl/laptops/password.html b/site_tmpl/laptops/password.html index 20b21a30..805e5a67 100644 --- a/site_tmpl/laptops/password.html +++ b/site_tmpl/laptops/password.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}{{title}} | Lens and Lights at WPI{% endblock %} {% block content %}

{{ title }}

{{ password }}
diff --git a/site_tmpl/mdm/app_detail.html b/site_tmpl/mdm/app_detail.html index bdd1e5d2..18d5b768 100644 --- a/site_tmpl/mdm/app_detail.html +++ b/site_tmpl/mdm/app_detail.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}{{app.name}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/mdm/device_list.html b/site_tmpl/mdm/device_list.html index a34cde91..59451f0d 100644 --- a/site_tmpl/mdm/device_list.html +++ b/site_tmpl/mdm/device_list.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}Device List for {{resource}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/mdm/mdm_list.html b/site_tmpl/mdm/mdm_list.html index 4b57e2f6..736c7601 100644 --- a/site_tmpl/mdm/mdm_list.html +++ b/site_tmpl/mdm/mdm_list.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}MDM Console | Lens and Lights at WPI{% endblock %} {% block content %}

Devices


diff --git a/site_tmpl/mdm/resource_list.html b/site_tmpl/mdm/resource_list.html index 2e522752..7febc158 100644 --- a/site_tmpl/mdm/resource_list.html +++ b/site_tmpl/mdm/resource_list.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}{{h2}} | Lens and Lights at WPI{% endblock %} {% block content %}

{{ h2 }}


diff --git a/site_tmpl/meeting_list.html b/site_tmpl/meeting_list.html index b875d41b..fb64246b 100644 --- a/site_tmpl/meeting_list.html +++ b/site_tmpl/meeting_list.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load static %} {% load bootstrap3 %} +{% block title %}View Meetings | Lens and Lights at WPI{% endblock %} {% block content %} {% for name, mtgs in lists %}

{{ name }}

diff --git a/site_tmpl/meeting_view.html b/site_tmpl/meeting_view.html index 9f327d2d..fff548de 100644 --- a/site_tmpl/meeting_view.html +++ b/site_tmpl/meeting_view.html @@ -4,6 +4,7 @@ {% load permissionif %} {% load lnldb_tags %} {% load slack %} +{% block title %}{{m.name}} | Lens and Lights at WPI{% endblock %} {% block content %}

{{ m.name }}

diff --git a/site_tmpl/multibillings.html b/site_tmpl/multibillings.html index 14dbded8..a1be59a7 100644 --- a/site_tmpl/multibillings.html +++ b/site_tmpl/multibillings.html @@ -4,6 +4,7 @@ {% load permissionif %} {% block extras %} {% endblock %} +{% block title %}{{h2}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/mycrispy.html b/site_tmpl/mycrispy.html index d26898af..7a5f7985 100644 --- a/site_tmpl/mycrispy.html +++ b/site_tmpl/mycrispy.html @@ -35,6 +35,9 @@ {% endblock %} + +{% block title %}My {{msg|striptags|safe}} | Lens and Lights at WPI{% endblock %} + {% block content %}

My {{msg|safe}}

diff --git a/site_tmpl/myevents.html b/site_tmpl/myevents.html index 8084d6fd..5caf20ee 100644 --- a/site_tmpl/myevents.html +++ b/site_tmpl/myevents.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}My Events | Lens and Lights at WPI{% endblock %} {% block content %} {% if user.ccinstances.exists %}

Events as Crew Chief

diff --git a/site_tmpl/myhours.html b/site_tmpl/myhours.html index 6cf337df..75370924 100644 --- a/site_tmpl/myhours.html +++ b/site_tmpl/myhours.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}My Hours for '{{event}}' | Lens and Lights at WPI{% endblock %} {% block content %}

My Hours for '{{event}}'

diff --git a/site_tmpl/myorgs.html b/site_tmpl/myorgs.html index ab01752c..af8003f9 100644 --- a/site_tmpl/myorgs.html +++ b/site_tmpl/myorgs.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}My Client Organizations | Lens and Lights at WPI{% endblock %} {% block content %}

My Client Organizations

diff --git a/site_tmpl/mytransfer.html b/site_tmpl/mytransfer.html index d61f972e..55340ce1 100644 --- a/site_tmpl/mytransfer.html +++ b/site_tmpl/mytransfer.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}Organizational Transfer | Lens and Lights at WPI{% endblock %} {% block content %}

Organizational Transfer

diff --git a/site_tmpl/mywo.html b/site_tmpl/mywo.html index 0e9264bb..cb9651cd 100644 --- a/site_tmpl/mywo.html +++ b/site_tmpl/mywo.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}My Previous Work Orders | Lens and Lights at WPI{% endblock %} {% block content %}

My Previous Work Orders

Here you can see all your associated orgs' previous events

diff --git a/site_tmpl/org.service.html b/site_tmpl/org.service.html index 844e9254..5fb89102 100644 --- a/site_tmpl/org.service.html +++ b/site_tmpl/org.service.html @@ -1,6 +1,6 @@ {% extends 'base_admin.html' %} - +{% block title %}Request Received | Lens and Lights at WPI{% endblock %} {% block content %}

Request Received

diff --git a/site_tmpl/org_detail.html b/site_tmpl/org_detail.html index beac98c8..00564a74 100644 --- a/site_tmpl/org_detail.html +++ b/site_tmpl/org_detail.html @@ -7,7 +7,7 @@ }); {% endblock %} - +{% block title %}{{org}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/orgs.html b/site_tmpl/orgs.html index 12a6842c..e911bb28 100644 --- a/site_tmpl/orgs.html +++ b/site_tmpl/orgs.html @@ -1,4 +1,5 @@ {% extends 'base_admin.html' %} +{% block title %}Client List | Lens and Lights at WPI{% endblock %} {% block content %}

Client List

diff --git a/site_tmpl/projection_pit_request.html b/site_tmpl/projection_pit_request.html index 17c35c06..a2820a66 100644 --- a/site_tmpl/projection_pit_request.html +++ b/site_tmpl/projection_pit_request.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load crispy_forms_tags %} +{% block title %}{{title}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/projection_pit_schedule.html b/site_tmpl/projection_pit_schedule.html index 2b8b9117..fb350f07 100644 --- a/site_tmpl/projection_pit_schedule.html +++ b/site_tmpl/projection_pit_schedule.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}Schedule PITs | Lens and Lights at WPI{% endblock %} {% block content %}

Schedule PITs

diff --git a/site_tmpl/projectionlist.html b/site_tmpl/projectionlist.html index 92fb2341..ad9e86a8 100644 --- a/site_tmpl/projectionlist.html +++ b/site_tmpl/projectionlist.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}{{h2}} | Lens and Lights at WPI{% endblock %} {% block content %}
 Detailed List diff --git a/site_tmpl/projectionlist_detail.html b/site_tmpl/projectionlist_detail.html index 5226d2a3..2ceac2ee 100644 --- a/site_tmpl/projectionlist_detail.html +++ b/site_tmpl/projectionlist_detail.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}{{h2}} | Lens and Lights at WPI{% endblock %} {% block content %}
 Standard List diff --git a/site_tmpl/search.html b/site_tmpl/search.html index d0ad75f1..27a1b0bc 100644 --- a/site_tmpl/search.html +++ b/site_tmpl/search.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} {% load watson %} +{% block title %}Results for {{ query }} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/slack/slack_message_list.html b/site_tmpl/slack/slack_message_list.html index c7e4a6f7..bd5e2c74 100644 --- a/site_tmpl/slack/slack_message_list.html +++ b/site_tmpl/slack/slack_message_list.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load slack %} +{% block title %}{{title}} | Lens and Lights at WPI{% endblock %} {% block content %}

{{ title }}

diff --git a/site_tmpl/slack/slack_message_report.html b/site_tmpl/slack/slack_message_report.html index 3b2c339f..5ff1455d 100644 --- a/site_tmpl/slack/slack_message_report.html +++ b/site_tmpl/slack/slack_message_report.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load slack %} +{% block title %}Reported Details | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/song_requests.html b/site_tmpl/song_requests.html index b601c1a2..947ccecb 100644 --- a/site_tmpl/song_requests.html +++ b/site_tmpl/song_requests.html @@ -3,6 +3,7 @@ {% load lnldb_tags %} {% load spotify_tags %} +{% block title %}Song Requests | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/survey_dashboard.html b/site_tmpl/survey_dashboard.html index 7ab2a143..d3b93c91 100644 --- a/site_tmpl/survey_dashboard.html +++ b/site_tmpl/survey_dashboard.html @@ -2,10 +2,11 @@ {% load crispy_forms_tags %} {% load gpa_scale_emoji %} +{% block title %}Survey Dashboard | Lens and Lights at WPI{% endblock %} {% block content %}
-

Survey dashboard

+

Survey Dashboard

Response rate

Of the {{ num_eligible_events }} events in the past year, {{ num_events }} ({{ response_rate|floatformat }}%) have at least one survey response.

{% if num_events > 0 %} diff --git a/site_tmpl/too_late.html b/site_tmpl/too_late.html index 1bec7284..ce240fe7 100644 --- a/site_tmpl/too_late.html +++ b/site_tmpl/too_late.html @@ -1,4 +1,5 @@ {% extends 'base_admin.html' %} +{% block title %}Too Late! | Lens and Lights at WPI{% endblock %} {% block content %}

Too Late!

diff --git a/site_tmpl/traininglist.html b/site_tmpl/traininglist.html index f3fe80a6..6fa163ff 100644 --- a/site_tmpl/traininglist.html +++ b/site_tmpl/traininglist.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}Training List | Lens and Lights at WPI{% endblock %} {% block content %}

{% permission request.user has 'members.add_training' %} diff --git a/site_tmpl/uglydetail.html b/site_tmpl/uglydetail.html index 595baf7b..32953ec3 100644 --- a/site_tmpl/uglydetail.html +++ b/site_tmpl/uglydetail.html @@ -4,6 +4,7 @@ {% load gpa_scale_emoji %} {% load spotify_tags %} +{% block title %}{{event}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/userdetail.html b/site_tmpl/userdetail.html index c4beadae..4bb3a408 100644 --- a/site_tmpl/userdetail.html +++ b/site_tmpl/userdetail.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}{{u}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/users.html b/site_tmpl/users.html index 1cf639e5..5de31b8f 100644 --- a/site_tmpl/users.html +++ b/site_tmpl/users.html @@ -1,6 +1,7 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}{{h2}} | Lens and Lights at WPI{% endblock %} {% block content %}

{{ h2 }}

diff --git a/site_tmpl/users_mdc.html b/site_tmpl/users_mdc.html index 9dff27c1..38e036f5 100644 --- a/site_tmpl/users_mdc.html +++ b/site_tmpl/users_mdc.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} {% load permissionif %} +{% block title %}{{h2}} | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/users_secretary_dashboard.html b/site_tmpl/users_secretary_dashboard.html index 1bbf8f56..fde8cb57 100644 --- a/site_tmpl/users_secretary_dashboard.html +++ b/site_tmpl/users_secretary_dashboard.html @@ -1,4 +1,5 @@ {% extends 'base_admin.html' %} +{% block title %}Secretary Dashboard | Lens and Lights at WPI{% endblock %} {% block content %}
diff --git a/site_tmpl/users_shame.html b/site_tmpl/users_shame.html index 63d43742..20ab9f48 100644 --- a/site_tmpl/users_shame.html +++ b/site_tmpl/users_shame.html @@ -1,4 +1,5 @@ {% extends 'base_admin.html' %} +{% block title %}Hall of Shame | Lens and Lights at WPI{% endblock %} {% block content %}

Hall of Shame

diff --git a/site_tmpl/workshops_list.html b/site_tmpl/workshops_list.html index 6f07a662..0df7db84 100644 --- a/site_tmpl/workshops_list.html +++ b/site_tmpl/workshops_list.html @@ -1,5 +1,6 @@ {% extends 'base_admin.html' %} +{% block title %}Manage Workshops | Lens and Lights at WPI{% endblock %} {% block content %}

Manage Workshops