diff --git a/aleksis/apps/alsijil/menus.py b/aleksis/apps/alsijil/menus.py index 5eb69b96d078a8c5cf4830023e7c45510f232f24..77e16fe8a72785a9f4d063a60ad328ca5d8c0e58 100644 --- a/aleksis/apps/alsijil/menus.py +++ b/aleksis/apps/alsijil/menus.py @@ -5,6 +5,7 @@ MENUS = { { "name": _("Class register"), "url": "#", + "icon": "chrome_reader_mode", "root": True, "validators": [ "menu_generator.validators.is_authenticated", @@ -14,21 +15,25 @@ MENUS = { { "name": _("Current lesson"), "url": "lesson", + "icon": "alarm", "validators": ["menu_generator.validators.is_authenticated"], }, { "name": _("Current week"), "url": "week_view", + "icon": "view_week", "validators": ["menu_generator.validators.is_authenticated"], }, { "name": _("Register absence"), "url": "register_absence", + "icon": "rate_review", "validators": ["menu_generator.validators.is_superuser"], }, { "name": _("Personal note filters"), "url": "list_personal_note_filters", + "icon": "filter_list", "validators": ["menu_generator.validators.is_superuser"], }, ], diff --git a/aleksis/apps/alsijil/static/css/alsijil/alsijil.css b/aleksis/apps/alsijil/static/css/alsijil/alsijil.css new file mode 100644 index 0000000000000000000000000000000000000000..bbd04ba7dcd2d2376ade585c3832c1b3983c7f02 --- /dev/null +++ b/aleksis/apps/alsijil/static/css/alsijil/alsijil.css @@ -0,0 +1,3 @@ +table.datatable a { + color: inherit !important; +} diff --git a/aleksis/apps/alsijil/templates/alsijil/lesson.html b/aleksis/apps/alsijil/templates/alsijil/lesson.html index 6ef5e097c66db7311508d1e8f5521b36eca65ae0..82f85bf751b6960e1f20a35b3b3b9402eb78d54b 100644 --- a/aleksis/apps/alsijil/templates/alsijil/lesson.html +++ b/aleksis/apps/alsijil/templates/alsijil/lesson.html @@ -1,14 +1,14 @@ {# -*- engine:django -*- #} {% extends "core/base.html" %} -{% load bootstrap4 i18n static %} +{% load material_form i18n static %} -{% block bootstrap4_extra_head %} +{% block browser_title %}{% blocktrans %}Lesson{% endblocktrans %}{% endblock %} + +{% block extra_head %} {{ block.super }} <link rel="stylesheet" href="{% static 'css/alsijil/lesson.css' %}" /> {% endblock %} -{% block bootstrap4_title %}{% blocktrans%}Lesson documentation{% endblocktrans %} - {{ block.super }}{% endblock %} - {% block page_title %} {{ day }} - @@ -28,57 +28,51 @@ {% csrf_token %} <div class="row"> - <div class="col-md-8"> - <div class="card"> - <div class="card-header bg-light text-dark"> + <div class="col s8"> + <div class="card dark-text"> + <span class="card-title"> {% blocktrans %}Lesson documentation{% endblocktrans %} </div> - <div class="card-body"> - {% csrf_token %} - {% bootstrap_form lesson_documentation_form %} - </div> + {% csrf_token %} + {% form form=lesson_documentation_form %}{% endform %} </div> </div> - <div class="col-md-4"> - <div class="card"> - <div class="card-header bg-light text-dark"> + <div class="col s4"> + <div class="card dark-text"> + <span class="card-title"> {% blocktrans %}Change history{% endblocktrans %} - </div> + </span> {% include 'core/crud_events_ul.html' with class_ul='list-group list-group-flush' class_li='list-group-item d-flex justify-content-between align-items-center' obj=lesson_documentation %} </div> </div> </div> - <div class="card"> - <div class="card-header bg-light text-dark"> + <div class="card dark-text"> + <span class="card-title"> {% blocktrans %}Personal notes{% endblocktrans %} - </div> - <div class="card-body"> - {{ personal_note_formset.management_form }} + </span> + {{ personal_note_formset.management_form }} - <table class="table table-striped table-bordered table-hover table-responsive-xl"> + <table class="striped responsive-table"> + <tr> + <th>{% blocktrans %}Person{% endblocktrans %}</th> + <th>{% blocktrans %}Absent{% endblocktrans %}</th> + <th>{% blocktrans %}Tardiness{% endblocktrans %}</th> + <th>{% blocktrans %}Excused{% endblocktrans %}</th> + <th>{% blocktrans %}Remarks{% endblocktrans %}</th> + </tr> + {% for form in personal_note_formset %} + {{ form.id }} <tr> - <th>{% blocktrans %}Person{% endblocktrans %}</th> - <th>{% blocktrans %}Absent{% endblocktrans %}</th> - <th>{% blocktrans %}Tardiness{% endblocktrans %}</th> - <th>{% blocktrans %}Excused{% endblocktrans %}</th> - <th>{% blocktrans %}Remarks{% endblocktrans %}</th> + <td>{{ form.person_name }}</td> + <td>{{ form.absent }}</td> + <td>{{ form.late }}</td> + <td>{{ form.excused }}</td> + <td>{{ form.remarks }}</td> </tr> - {% for form in personal_note_formset %} - {{ form.id }} - <tr> - <td>{{ form.person_name }}</td> - <td>{{ form.absent }}</td> - <td>{{ form.late }}</td> - <td>{{ form.excused }}</td> - <td>{{ form.remarks }}</td> - </tr> - {% endfor %} - </table> - </div> + {% endfor %} + </table> </div> - <button type="submit" class="btn btn-dark"> - <span class="mdi mdi-content-save"></span> - </button> + {% include "core/save_button.html" %} </form> {% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filter.html b/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filter.html index 8d8cb754882710550cab7bdc99b8701439ceb772..e41e8e3e3173f380813e91cd35ce34b4064d9497 100644 --- a/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filter.html +++ b/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filter.html @@ -1,38 +1,21 @@ {# -*- engine:django -*- #} {% extends "core/base.html" %} -{% load bootstrap4 i18n static %} - -{% block bootstrap4_extra_head %} - {{ block.super }} - {{ personal_note_filter_form.media.css }} -{% endblock %} - -{% block bootstrap4_extra_script %} - {{ block.super }} - {{ personal_note_filter_form.media.js }} -{% endblock %} - -{% block bootstrap4_title %}{% blocktrans%}Manage personal note filter{% endblocktrans %} - {{ block.super }}{% endblock %} +{% load material_form i18n static %} +{% block browser_title %}{% blocktrans %}Manage personal note filter{% endblocktrans %}{% endblock %} {% block page_title %}{% blocktrans %}Manage personal note filter{% endblocktrans %}{% endblock %} {% block content %} -<div class="d-flex justify-content-between"> - <div class="btn-group" role="group" aria-label="Filter actions"> - {% if personal_note_filter %} - <a href="{% url 'delete_personal_note_filter' personal_note_filter.id %}" class="btn btn-danger"> - <span class="mdi mdi-delete"></span> - </a> - {% endif %} - </div> - </div> + {% if personal_note_filter %} + <a href="{% url 'delete_personal_note_filter' personal_note_filter.id %}" class="waves-effect waves-dark btn red"> + <i class="material-icons">delete</i>{% blocktrans %}Delete filter{% endblocktrans %} + </a> + {% endif %} <form method="post"> {% csrf_token %} - {% bootstrap_form personal_note_filter_form %} - <button type="submit" class="btn btn-dark"> - <span class="mdi mdi-content-save"></span> - </button> + {% form form=personal_note_filter_form %}{% endform %} + {% include "core/save_button.html" %} </form> {% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filters.html b/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filters.html deleted file mode 100644 index 8cf6fdbd6122e27e20e80183e734a9bbdac11596..0000000000000000000000000000000000000000 --- a/aleksis/apps/alsijil/templates/alsijil/manage_personal_note_filters.html +++ /dev/null @@ -1,38 +0,0 @@ -{# -*- engine:django -*- #} -{% extends "core/base.html" %} -{% load bootstrap4 i18n static %} - -{% block bootstrap4_extra_head %} - {{ block.super }} - {{ personal_note_filters_form.media.css }} -{% endblock %} - -{% block bootstrap4_extra_script %} - {{ block.super }} - {{ personal_note_filters_form.media.js }} -{% endblock %} - -{% block bootstrap4_title %}{% blocktrans%}Manage personal note filters{% endblocktrans %} - {{ block.super }}{% endblock %} - -{% block page_title %}{% blocktrans %}Manage personal note filters{% endblocktrans %}{% endblock %} - -{% block content %} -<div class="d-flex justify-content-between"> - <div class="btn-group" role="group" aria-label="Filter actions"> - {% if personal_note_filters %} - <a href="{% url 'delete_personal_note_filters' personal_note_filters.id %}" class="btn btn-danger"> - <span class="mdi mdi-delete"></span> - </a> - {% endif %} - </div> - </div> - - <form method="post"> - {% csrf_token %} - {% bootstrap_form personal_note_filters_form %} - <button type="submit" class="btn btn-dark"> - <span class="mdi mdi-content-save"></span> - </button> - </form> - -{% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/personal_note_filters.html b/aleksis/apps/alsijil/templates/alsijil/personal_note_filters.html index 0af6543774e3c078165dad53516614af6d5ebe54..8796de4294a1cdbef7825d7ef511a8f80b1acebe 100644 --- a/aleksis/apps/alsijil/templates/alsijil/personal_note_filters.html +++ b/aleksis/apps/alsijil/templates/alsijil/personal_note_filters.html @@ -1,18 +1,16 @@ {# -*- engine:django -*- #} {% extends "core/base.html" %} -{% load bootstrap4 i18n %} +{% load i18n %} {% load render_table from django_tables2 %} -{% block bootstrap4_title %}{% blocktrans %}List of all personal note filters{% endblocktrans %} - {{ block.super }}{% endblock %} +{% block browser_title %}{% blocktrans %}List of all personal note filters{% endblocktrans %}{% endblock %} {% block page_title %}{% blocktrans %}List of all personal note filters{% endblocktrans %}{% endblock %} {% block content %} - <div class="btn-group" role="group" aria-lable="Filter actions"> - <a href="{% url 'create_personal_note_filter' %}" class="btn btn-dark"> - <span class="mdi mdi-plus"></span> - </a> - </div> + <a href="{% url 'create_personal_note_filter' %}" class="waves-effect waves-dark green btn"> + <i class="material-icons">add</i>{% blocktrans %}Add filter{% endblocktrans %} + </a> {% render_table personal_note_filters_table %} {% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html index b5f24badd0c9067fd0563ea01d23aacec8371586..7b71923954e0628533eba8bf346e9f1e1b72c7d0 100644 --- a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html +++ b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html @@ -1,4 +1,4 @@ -{% load staticfiles i18n cropping data_helpers week_helpers %} +{% load static i18n cropping data_helpers week_helpers %} <!DOCTYPE html> <html> @@ -8,8 +8,6 @@ href="{% static 'css/alsijil/paper.css' %}" /> <link rel="stylesheet" href="{% static 'css/alsijil/full_register.css' %}" /> - <link rel="stylesheet" - href="{% static '@mdi/font/css/materialdesignicons.css' %}" /> </head> <body class="A4"> @@ -135,36 +133,36 @@ <img src="{% static 'img/fallback.png' %}" alt="{{ person.first_name }} {{ person.last_name }}" /> {% endif %} </td> - <td><span class="mdi mdi-account"></span></td> + <td><i class="material-icons">person</i></td> <td>{{ person.first_name }}</td> <td>{{ person.additional_name }}</td> <td>{{ person.last_name }}</td> </tr> <tr> - <td><span class="mdi mdi-gender-male-female"></span></td> + <td><i class="material-icons">face</i></td> <td colspan="3">{{ person.get_sex_display }}</td> </tr> <tr> - <td><span class="mdi mdi-home"></span></td> + <td><i class="material-icons">home</i></td> <td colspan="2">{{ person.street }} {{ person.housenumber }}</td> <td colspan="2">{{ person.postal_code }} {{ person.place }}</td> </tr> <tr> - <td><span class="mdi mdi-phone"></span></td> + <td><i class="material-icons">phone</i></td> <td>{{ person.phone_number }}</td> <td>{{ person.mobile_number }}</td> </tr> <tr> - <td><span class="mdi mdi-email"></span></td> + <td><i class="material-icons">email</i></td> <td colspan="3">{{ person.email }}</td> </tr> <tr> - <td><span class="mdi mdi-gift"></span></td> + <td><i class="material-icons">gift</i></td> <td colspan="3">{{ person.date_of_birth|date }}</td> </tr> {% comment %} <tr> - <td><span class="mdi mdi-school"></span></td> + <td><i class="material-icons">school</i></td> <td>Class</td> <td>Teacher</td> </tr> diff --git a/aleksis/apps/alsijil/templates/alsijil/register_absence.html b/aleksis/apps/alsijil/templates/alsijil/register_absence.html index af530eba99726be4c6ea2a43c7fb26ef05db5645..94651f01e10d175c614b923e1b69fd9556025d4f 100644 --- a/aleksis/apps/alsijil/templates/alsijil/register_absence.html +++ b/aleksis/apps/alsijil/templates/alsijil/register_absence.html @@ -1,29 +1,16 @@ {# -*- engine:django -*- #} {% extends "core/base.html" %} -{% load bootstrap4 i18n static %} - -{% block bootstrap4_extra_head %} - {{ block.super }} - {{ register_absence_form.media.css }} -{% endblock %} - -{% block bootstrap4_extra_script %} - {{ block.super }} - {{ register_absence_form.media.js }} -{% endblock %} - -{% block bootstrap4_title %}{% blocktrans%}Manage absence{% endblocktrans %} - {{ block.super }}{% endblock %} +{% load material_form i18n static %} +{% block browser_title %}{% blocktrans %}Manage absence{% endblocktrans %}{% endblock %} {% block page_title %}{% blocktrans %}Manage absence{% endblocktrans %}{% endblock %} {% block content %} <form method="post"> {% csrf_token %} - {% bootstrap_form register_absence_form %} - <button type="submit" class="btn btn-dark"> - <span class="mdi mdi-content-save"></span> - </button> + {% form form=register_absence_form %}{% endform %} + {% include "core/save_button.html" %} </form> {% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/week_view.html b/aleksis/apps/alsijil/templates/alsijil/week_view.html index 8f4b63715e87bced2f5a4337d283d7a6d81a2ea4..4f0e4745538777738632a9c468a9bd52216170ea 100644 --- a/aleksis/apps/alsijil/templates/alsijil/week_view.html +++ b/aleksis/apps/alsijil/templates/alsijil/week_view.html @@ -1,49 +1,47 @@ {# -*- engine:django -*- #} -{% extends "core/turnable.html" %} -{% load bootstrap4 i18n week_helpers %} +{% extends "core/base.html" %} +{% load material_form i18n week_helpers %} -{% block bootstrap4_extra_head %} - {{ block.super }} - {{ select_form.media.css }} -{% endblock %} +{% block browser_title %}{% blocktrans %}Week view{% endblocktrans %}{% endblock %} -{% block bootstrap4_extra_script %} +{% block extra_head %} {{ block.super }} - {{ select_form.media.js }} + <link rel="stylesheet" href="{% static 'css/alsijil/alsijil.css' %}" /> {% endblock %} -{% block bootstrap4_title %}{% blocktrans%}Current week{% endblocktrans %} — {{ block.super }}{% endblock %} - -{% block current_content %} - <div class="d-flex justify-content-between"> +{% block content %} + <div class="row"> + <div class="col s10"> <form method="get"> <ul id="timetable_select_form"> - {{ select_form.as_ul }} + {% form form=select_form %}{% endform %} </ul> - <button type="submit" class="btn btn-dark"> + <button type="submit" class="btn waves-effect waves-light"> {% blocktrans %}Select{% endblocktrans %} </button> </form> - {% if group %} - <a class="btn btn-dark" href="{% url 'full_register_group' group.id %}"> - <span class="mdi mdi-printer"></span> - </a> - {% endif %} </div> + {% if group %} + <div class="col s2"> + <a class="btn waves-effect waves-light" href="{% url 'full_register_group' group.id %}"> + <i class="material-icons">printer</i> + </a> + </div> + {% endif %} + </div> {% if lesson_periods.count %} <div class="row"> - <div class="col-md-7"> - <div class="card"> - <div class="card-header bg-light text-dark"> - {% blocktrans %}Lessons{% endblocktrans %} - </div> - <div class="card-body"> - {% regroup lesson_periods by period.get_weekday_display as periods_by_day %} - {% for weekday, periods in periods_by_day %} - <h3>{{ weekday }}</h3> - <table class="table table-striped table-bordered table-hover table-responsive-xl"> + <div class="col s7"> + {% regroup lesson_periods by period.get_weekday_display as periods_by_day %} + {% for weekday, periods in periods_by_day %} + <div class="card"> + <div class="card-content"> + <span class="card-title"> + {{ weekday }} + </span> + <table class="striped responsive-table datatable"> <thead> <tr> <th>{% blocktrans %}Period{% endblocktrans %}</th> @@ -55,15 +53,15 @@ {% for period in periods %} <tr class=" {% if period.has_documentation %} - table-success + success {% else %} {% weekday_to_date week period.period.weekday as current_date %} {% today as today %} {% if current_date < today %} - table-danger + error {% else %} {% if period.get_substitution %} - table-warning + warning {% if period.get_substitution.cancelled %} alsijil-lesson-cancelled {% endif %} @@ -82,17 +80,17 @@ {% endfor %} </tbody> </table> - {% endfor %} + </div> </div> - </div> + {% endfor %} </div> - <div class="col-md-5"> + <div class="col s5"> <div class="card"> - <div class="card-header bg-light text-dark"> - {% blocktrans %}Personal notes{% endblocktrans %} - </div> - {% for person in persons %} - <div class="card-body"> + <div class="card-content"> + <span class="card-title"> + {% blocktrans %}Personal notes{% endblocktrans %} + </span> + {% for person in persons %} <h5 class="card-title">{{ person.full_name }}</h5> <p class="card-text"> {% trans "Absent" %}: {{ person.absences }} @@ -112,17 +110,17 @@ </blockquote> {% endif %} {% endfor %} - </div> - {% endfor %} + {% endfor %} + </div> </div> </div> </div> {% else %} - <div class="card text-white bg-danger"> - <div class="card-header"> - {% blocktrans %}No group selected{% endblocktrans %} - </div> - <div class="card-body"> + <div class="card red darken-1"> + <div class="card-content white-text"> + <span class="card-title"> + {% blocktrans %}No group selected{% endblocktrans %} + </span> <p> {% blocktrans %} There are no lessons for the selected group, teacher, room or time. diff --git a/poetry.lock b/poetry.lock index ab4a1f767d79fc97508ed888899f4b252637a538..bbece2da998d3c1fa1ba406e525ba9fe63b9ae83 100644 --- a/poetry.lock +++ b/poetry.lock @@ -11,7 +11,6 @@ Django = "^3.0" Pillow = "^7.0" colour = "^0.1.5" django-any-js = "^1.0" -django-bootstrap4 = "^1.0" django-debug-toolbar = "^2.0" django-easy-audit = "^1.2rc1" django-filter = "^2.2.0" @@ -208,17 +207,6 @@ version = "1.0.3" django = "*" six = "*" -[[package]] -category = "main" -description = "Bootstrap support for Django projects" -name = "django-bootstrap4" -optional = false -python-versions = "*" -version = "1.1.1" - -[package.dependencies] -beautifulsoup4 = "*" - [[package]] category = "main" description = "Bulk update using one query over Django ORM." @@ -918,10 +906,6 @@ django-appconf = [ {file = "django-appconf-1.0.3.tar.gz", hash = "sha256:35f13ca4d567f132b960e2cd4c832c2d03cb6543452d34e29b7ba10371ba80e3"}, {file = "django_appconf-1.0.3-py2.py3-none-any.whl", hash = "sha256:c98a7af40062e996b921f5962a1c4f3f0c979fa7885f7be4710cceb90ebe13a6"}, ] -django-bootstrap4 = [ - {file = "django-bootstrap4-1.1.1.tar.gz", hash = "sha256:39f97cbce85eb66f6d76be2029bae171bd3863d0c6932b1c2dae7f299c569b90"}, - {file = "django_bootstrap4-1.1.1-py3-none-any.whl", hash = "sha256:0fcd84f8414a58b43df0b331c00c8b2f1786ae28f75f419b4d33b06fca43e0d1"}, -] django-bulk-update = [ {file = "django-bulk-update-2.2.0.tar.gz", hash = "sha256:5ab7ce8a65eac26d19143cc189c0f041d5c03b9d1b290ca240dc4f3d6aaeb337"}, {file = "django_bulk_update-2.2.0-py2.py3-none-any.whl", hash = "sha256:49a403392ae05ea872494d74fb3dfa3515f8df5c07cc277c3dc94724c0ee6985"},