From 2bdad0ae7a3a6e4ec5116becd39910388b679ed2 Mon Sep 17 00:00:00 2001 From: Leif Johansson Date: Thu, 4 Oct 2012 15:39:08 +0200 Subject: restructure --- meetingtools/apps/room/forms.py | 82 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 meetingtools/apps/room/forms.py (limited to 'meetingtools/apps/room/forms.py') diff --git a/meetingtools/apps/room/forms.py b/meetingtools/apps/room/forms.py new file mode 100644 index 0000000..62b515b --- /dev/null +++ b/meetingtools/apps/room/forms.py @@ -0,0 +1,82 @@ +''' +Created on Feb 1, 2011 + +@author: leifj +''' + +from meetingtools.apps.room.models import Room +from django.forms.widgets import Select, TextInput, RadioSelect, Textarea +from django.forms.fields import BooleanField, ChoiceField, CharField +from django.forms.forms import Form +from form_utils.forms import BetterModelForm +from django.utils.safestring import mark_safe +from django.forms.models import ModelForm + +PUBLIC = 0 +PROTECTED = 1 +PRIVATE = 2 + +class PrefixTextInput(TextInput): + def __init__(self, attrs=None, prefix=None): + super(PrefixTextInput, self).__init__(attrs) + self.prefix = prefix + + def render(self, name, value, attrs=None): + return mark_safe("
"+self.prefix+""+ + super(PrefixTextInput, self).render(name, value, attrs)+"
") + +class ModifyRoomForm(ModelForm): + class Meta: + model = Room + fields = ['name','description','source_sco_id','self_cleaning','allow_host'] + widgets = {'source_sco_id': Select(), + 'description': Textarea(attrs={'rows': 4, 'cols': 50}), + 'name': TextInput(attrs={'size': '40'})} + + +class CreateRoomForm(BetterModelForm): + + access = ChoiceField(choices=(('public','Public'),('private','Private'))) + + class Meta: + model = Room + fields = ['name','description','urlpath','access','self_cleaning','allow_host'] + fieldsets = [('name',{'fields': ['name'], + 'classes': ['step'], + 'legend': 'Step 1: Room name', + 'description': 'The room name should be short and descriptive.' + }), + ('description',{'fields': ['description'], + 'classes': ['step'], + 'legend': 'Step 2: Room description', + 'description': 'Please provide a short summary of this room.' + }), + ('properties',{'fields': ['self_cleaning','allow_host','urlpath','access'], + 'classes': ['step'], + 'legend': 'Step 3: Room properties', + 'description': ''' +

These are basic properties for your room. If you set your room to cleaned up after + use it will be reset every time the last participant leaves the room. If you create a public room it + will be open to anyone who has the room URL. If you create a private room then guests will have to be + approved by an active meeting host before being able to join the room.

+ +
+
+

+ Warning Setting a room to be cleaned up when empty will cause all existing content + associated with the to be destroyed each time the room is reset.

+
+
+ ''' + }), + ] + widgets = {'access': RadioSelect(), + 'urlpath': PrefixTextInput(attrs={'size': '10'}), + 'description': Textarea(attrs={'rows': 4, 'cols': 50}), + 'name': TextInput(attrs={'size': '40'})} + +class DeleteRoomForm(Form): + confirm = BooleanField(label="Confirm remove room") + +class TagRoomForm(Form): + tag = CharField(max_length=256) \ No newline at end of file -- cgit v1.1