Skip to content
Snippets Groups Projects
forms.py 959 B
Newer Older
from betterforms.multiform import MultiModelForm
from django.forms import ModelForm

from AKModel.forms import RoomForm
from AKOnline.models import VirtualRoom


class VirtualRoomForm(ModelForm):
    class Meta:
        model = VirtualRoom
        exclude = ['room']

    def __init__(self, *args, **kwargs):
        super(VirtualRoomForm, self).__init__(*args, **kwargs)
        self.fields['url'].required = False


class RoomWithVirtualForm(MultiModelForm):
    form_classes = {
        'room': RoomForm,
        'virtual': VirtualRoomForm
    }

    def save(self, commit=True):
        objects = super(RoomWithVirtualForm, self).save(commit=False)

        if commit:
            room = objects['room']
            room.save()

            virtual = objects['virtual']
            if virtual.url != "":
                virtual.room = room
                virtual.save()
            else:
                objects['virtual'] = None

        return objects