Skip to content
Snippets Groups Projects
Commit 5a5cfd88 authored by Benjamin Hättasch's avatar Benjamin Hättasch Committed by Nadja Geisler
Browse files

Allow to mark availabilites for rooms

Implements #92
parent 9f8de915
No related branches found
No related tags found
1 merge request!53Drag and drop based plan for scheduling
...@@ -2,6 +2,7 @@ from django.apps import apps ...@@ -2,6 +2,7 @@ from django.apps import apps
from django.contrib import admin from django.contrib import admin
from django.contrib.admin import SimpleListFilter from django.contrib.admin import SimpleListFilter
from django.db.models import Count, F from django.db.models import Count, F
from django import forms
from django.shortcuts import render from django.shortcuts import render
from django.urls import path, reverse_lazy from django.urls import path, reverse_lazy
from django.utils import timezone from django.utils import timezone
...@@ -9,6 +10,7 @@ from django.utils.html import format_html ...@@ -9,6 +10,7 @@ from django.utils.html import format_html
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from simple_history.admin import SimpleHistoryAdmin from simple_history.admin import SimpleHistoryAdmin
from AKModel.availability.forms import AvailabilitiesFormMixin
from AKModel.availability.models import Availability from AKModel.availability.models import Availability
from AKModel.models import Event, AKOwner, AKCategory, AKTrack, AKTag, AKRequirement, AK, AKSlot, Room, AKOrgaMessage from AKModel.models import Event, AKOwner, AKCategory, AKTrack, AKTag, AKRequirement, AK, AKSlot, Room, AKOrgaMessage
from AKModel.views import EventStatusView, AKCSVExportView, AKWikiExportView, AKMessageDeleteView from AKModel.views import EventStatusView, AKCSVExportView, AKWikiExportView, AKMessageDeleteView
...@@ -158,6 +160,27 @@ class AKAdmin(SimpleHistoryAdmin): ...@@ -158,6 +160,27 @@ class AKAdmin(SimpleHistoryAdmin):
return super(AKAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) return super(AKAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
class RoomForm(AvailabilitiesFormMixin, forms.ModelForm):
class Meta:
model = Room
fields = ['name',
'location',
'capacity',
'properties',
'event',
]
widgets = {
'properties': forms.CheckboxSelectMultiple,
}
def __init__(self, *args, **kwargs):
# Init availability mixin
kwargs['initial'] = dict()
super().__init__(*args, **kwargs)
self.initial = {**self.initial, **kwargs['initial']}
@admin.register(Room) @admin.register(Room)
class RoomAdmin(admin.ModelAdmin): class RoomAdmin(admin.ModelAdmin):
model = Room model = Room
...@@ -165,6 +188,12 @@ class RoomAdmin(admin.ModelAdmin): ...@@ -165,6 +188,12 @@ class RoomAdmin(admin.ModelAdmin):
list_filter = ['location', 'properties', 'event'] list_filter = ['location', 'properties', 'event']
list_editable = [] list_editable = []
ordering = ['location', 'name'] ordering = ['location', 'name']
change_form_template = "admin/AKModel/room_change_form.html"
def get_form(self, request, obj=None, change=False, **kwargs):
if obj is not None:
return RoomForm
return super().get_form(request, obj, change, **kwargs)
def formfield_for_foreignkey(self, db_field, request, **kwargs): def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'event': if db_field.name == 'event':
......
{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}
{% load static %}
{% load bootstrap4 %}
{% block extrahead %}
{{ block.super }}
{% bootstrap_javascript jquery='slim' %}
<link href='{% static 'AKSubmission/vendor/fullcalendar3/fullcalendar.min.css' %}' rel='stylesheet'/>
<link href='{% static 'AKSubmission/css/availabilities.css' %}' rel='stylesheet'/>
<script src="{% static "AKSubmission/vendor/moment/moment-with-locales.js" %}"></script>
<script src="{% static "AKSubmission/vendor/moment-timezone/moment-timezone-with-data-10-year-range.js" %}"></script>
<script src='{% static 'AKSubmission/vendor/fullcalendar3/fullcalendar.min.js' %}'></script>
<script src="{% static "common/js/availabilities.js" %}"></script>
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment