Пример #1
0
class ScheduleBuilderForm(forms.Form):
    _courses = [(c.id, str(c)) for c in Course.objects.filter(current=True)]
    _hours = [(x, "%s:00" % (x % 12)) for x in [8,9,10,11,13,14,15,16]]
    _lengths = [(x, "%s hours" % x) for x in [1,2,3,4]]
    _instructors = [(p.instructor_letter, str(p)) for p in Person.objects.filter(kind=FACULTY_KIND)]
    _rooms = [(r.id, str(r)) for r in Room.objects.all()]
    course = forms.ChoiceField(choices=_courses)
    start_time = forms.ChoiceField(choices=_hours)
    length = forms.ChoiceField(choices=_lengths)
    room = forms.ChoiceField(choices=_rooms)
    sections = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=SECTION_CHOICES)
    instructors = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=_instructors, required=False)
Пример #2
0
    def __init__(self, *args, **kwargs):
        debugOutput("Creating")

        # Pre-load with user details if there is a user.
        if "user" in kwargs and kwargs["user"]:
            user = kwargs["user"]
            initial = user
            self.mode = "edit"
            # TODO: Load the roles of this user.
        else:
            initial = None
            user = None
            self.mode = "create"

        if "user" in kwargs:
            del kwargs["user"]
        super(self.__class__, self).__init__(initial=initial, *args, **kwargs)

        # Setup the roles field.
        choices = [(role, role) for role in wikidbase.core.security.getRoles()]
        userRoles = user and wikidbase.core.security.getUserRoles(
            user["username"]) or []
        self.fields["roles"] = newforms.MultipleChoiceField(
            initial=userRoles,
            widget=newforms.CheckboxSelectMultiple,
            choices=choices,
            required=False)
Пример #3
0
class PreferencesForm(forms.Form):
    """
    Returns basic preferences form containing:
        source(s) to search
        alert method(s)
        criteria
    """

    sources_choices = []
    for source in Source.objects.all():
        sources_choices.append((source.id, source.name))

    sources = forms.MultipleChoiceField(widget=CheckboxSelectMultiple(),
                                        choices=sources_choices,
                                        required=False)

    alert_methods_choices = (
        ('mail', 'E-Mail'),
        ('rss', 'RSS'),
    )
    alert_methods = forms.MultipleChoiceField(widget=CheckboxSelectMultiple(),
                                              choices=alert_methods_choices,
                                              required=False)

    enable = forms.BooleanField(required=False)

    def save(self, user):
        """
        Overrides save method to add form values to the correct place in the db for this user
        """
        user_profile = user.get_profile()

        # set sources
        if self.cleaned_data.has_key('sources'):
            user_profile.sources.clear()
            for source_id in self.cleaned_data.get('sources', []):
                user_profile.sources.add(source_id)

        # set alert methods
        if self.cleaned_data.has_key('alert_methods'):
            user_profile.alert_methods.clear()
            for alert_method in self.cleaned_data.get('alert_methods', []):
                alert_method_obj = AlertMethod.objects.get(name=alert_method)
                user_profile.alert_methods.add(alert_method_obj)
Пример #4
0
class ModelSearchForm(forms.Form):
    query = forms.CharField(required=False)
    models = forms.MultipleChoiceField(choices=model_choices(),
                                       required=False,
                                       widget=forms.CheckboxSelectMultiple)

    def get_models(self):
        """Return a list of model classes specified by the models field."""
        search_models = []
        for model in self.cleaned_data['models']:
            search_models.append(models.get_model(*model.split('.')))
        if len(search_models) == 0:
            return None
        return search_models
Пример #5
0
 def choice_field(self, **kwargs):
     kwargs['required'] = False
     return forms.MultipleChoiceField(choices=self.choices, **kwargs)