Exemple #1
0
class EnrollForm(forms.Form):
    students = forms.ModelMultipleChoiceField(
        queryset=Student.objects.all(),
        widget = forms.SelectMultiple(attrs={'class':'multiselect',}),
        required=False)
    cohorts = forms.ModelMultipleChoiceField(
        queryset=Cohort.objects.all(),
        widget = forms.SelectMultiple(attrs={'class': 'field picker', 'style': 'min-height: 400px;'}),
        required=False)
Exemple #2
0
class TestForm(forms.ModelForm):
    class Meta:
        model = Test
        fields = ('name', 'school_year', 'teachers', 'department',
                  'marking_period', 'courses')
        widgets = {
            'name':
            forms.TextInput,
            'school_year':
            forms.Select,
            'department':
            forms.Select,
            'marking_period':
            forms.Select,
            'course':
            forms.SelectMultiple(attrs={
                'size': '10',
                'style': 'height:100%;'
            }),
        }

    teachers = AutoCompleteSelectMultipleField('faculty',
                                               required=True,
                                               help_text="")
    students = forms.ModelMultipleChoiceField(
        queryset=Student.objects.filter(is_active=True),
        widget=forms.SelectMultiple(attrs={'class': 'multiselect'}),
        required=False)
    quick_number_questions = forms.IntegerField(max_value=100,
                                                min_value=1,
                                                required=False,
                                                label="Number of Questions")
    quick_number_answers = forms.IntegerField(max_value=6,
                                              min_value=2,
                                              required=False,
                                              label="Number of Answers",
                                              help_text="Per Question")
    enroll_cohorts = forms.ModelMultipleChoiceField(
        queryset=Cohort.objects.all(),
        required=False,
        widget=forms.SelectMultiple(attrs={
            'size': '10',
            'style': 'height:100%;'
        }))

    def save(self, *args, **kwargs):
        instance = super(TestForm, self).save(*args, **kwargs)
        instance.enroll_students(self.cleaned_data['students'])
        return instance
Exemple #3
0
class GenericSplitConfig(forms.Form):
    def __init__(self, *args, **kwargs):
        super(GenericSplitConfig, self).__init__(*args)
        json_tables = RestClient.get_hbase_tables()
        self.fields["tables_selection"].choices = [
            [table['tableName'], table['tableName']] for table in json_tables
        ]

    has_config = True
    title = "Generic Split Configuration"
    panel_info_template = "snippets/panel_info_generic_split.html"
    number_of_splits = forms.IntegerField(widget=NumberSlider,
                                          label='Number of splits',
                                          required=False,
                                          max_value=30)

    tables_selection = forms.MultipleChoiceField(
        widget=forms.SelectMultiple(attrs={'size': '10'}),
        label='Tables selection',
        required=False)

    def get_json_config(self):
        json_config = dict()
        json_config['number_of_splits'] = self.cleaned_data['number_of_splits']
        json_config['tables_selection'] = self.cleaned_data['tables_selection']
        return json_config
Exemple #4
0
class OptaPlannerBalancingConfig(forms.Form):
    def __init__(self, *args, **kwargs):
        super(OptaPlannerBalancingConfig, self).__init__(*args)
        json_tables = RestClient.get_hbase_tables()
        self.fields["tables_selection"].choices = [
            [table['tableName'], table['tableName']] for table in json_tables
        ]

    has_config = True
    title = "Opta Planner Balancing Configuration"
    panel_info_template = "snippets/panel_info_optaplanner_balancing.html"
    timeout = forms.IntegerField(
        widget=NumberSlider,
        label='Time in seconds to explore the space of solutions',
        required=False,
        max_value=240)
    move_max = forms.IntegerField(
        widget=NumberSlider,
        label='Maximum number of moves (hard constraint)',
        required=False,
        max_value=240)
    move_weight = forms.IntegerField(widget=NumberSlider,
                                     label='Move weight (soft constraint)',
                                     required=False,
                                     max_value=100)
    size_weight = forms.IntegerField(widget=NumberSlider,
                                     label='Size weight (soft constraint)',
                                     required=False,
                                     max_value=100)
    read_weight = forms.IntegerField(
        widget=NumberSlider,
        label='Read requests weight (soft constraint)',
        required=False,
        max_value=100)
    write_weight = forms.IntegerField(
        widget=NumberSlider,
        label='Write requests weight (soft constraint)',
        required=False,
        max_value=100)

    tables_selection = forms.MultipleChoiceField(
        widget=forms.SelectMultiple(attrs={'size': '10'}),
        label='Tables selection',
        required=True)

    def get_json_config(self):
        if len(self.cleaned_data['tables_selection']) == 0:
            raise forms.ValidationError("You must select at least one table!")

        json_config = dict()
        json_config['timeout'] = self.cleaned_data['timeout']
        json_config['move_max'] = self.cleaned_data['move_max']
        json_config['move_weight'] = self.cleaned_data['move_weight']
        json_config['size_weight'] = self.cleaned_data['size_weight']
        json_config['read_weight'] = self.cleaned_data['read_weight']
        json_config['write_weight'] = self.cleaned_data['write_weight']
        json_config['tables_selection'] = self.cleaned_data['tables_selection']
        return json_config
Exemple #5
0
class GradebookFilterForm(forms.Form):
    cohort = forms.ModelChoiceField(
        queryset=None,
        widget=forms.Select(
            attrs={'onchange': 'submit_filter_form(this.form)'}),
        required=False)
    marking_period = forms.ModelChoiceField(
        queryset=None,
        widget=forms.Select(
            attrs={'onchange': 'submit_filter_form(this.form)'}),
        required=False)
    benchmark = forms.ModelMultipleChoiceField(
        queryset=None,
        required=False,
        widget=forms.SelectMultiple(attrs={'class': 'simple_multiselect'}))
    category = forms.ModelChoiceField(
        queryset=None,
        widget=forms.Select(
            attrs={'onchange': 'submit_filter_form(this.form)'}),
        required=False)
    assignment_type = forms.ModelChoiceField(
        queryset=None,
        widget=forms.Select(
            attrs={'onchange': 'submit_filter_form(this.form)'}),
        required=False)
    name = forms.CharField(required=False)
    date_begin = forms.DateField(
        required=False,
        widget=forms.DateInput(attrs={'placeholder': 'Later than'}),
        validators=settings.DATE_VALIDATORS)
    date_end = forms.DateField(
        required=False,
        widget=forms.DateInput(attrs={'placeholder': 'Earlier than'}),
        validators=settings.DATE_VALIDATORS)

    def update_querysets(self, course_section):
        self.fields['cohort'].queryset = Cohort.objects.filter(
            Q(percoursesectioncohort=None,
              student__coursesection=course_section)
            | Q(percoursesectioncohort__coursesection=course_section)
        ).distinct().order_by('name')
        self.fields['marking_period'].queryset = MarkingPeriod.objects.filter(
            coursesection=course_section).distinct()
        self.fields['benchmark'].queryset = Benchmark.objects.filter(
            item__course_section=course_section).distinct()
        self.fields[
            'assignment_type'].queryset = AssignmentType.objects.filter(
                item__course_section=course_section).distinct()
        self.fields['category'].queryset = Category.objects.filter(
            item__course_section=course_section).distinct()
Exemple #6
0
 class Meta:
     model = Test
     fields = ('name', 'school_year', 'teachers', 'department',
               'marking_period', 'course_sections')
     widgets = {
         'name':
         forms.TextInput,
         'school_year':
         forms.Select,
         'department':
         forms.Select,
         'marking_period':
         forms.Select,
         'course_section':
         forms.SelectMultiple(attrs={
             'size': '10',
             'style': 'height:100%;'
         }),
     }
Exemple #7
0
class TestForm(forms.ModelForm):
    class Meta:
        model = Test
        fields = ('name', 'school_year', 'teachers', 'department',
                  'marking_period', 'courses')

    teachers = AutoCompleteSelectMultipleField('faculty',
                                               required=True,
                                               help_text="")
    students = forms.ModelMultipleChoiceField(
        queryset=Student.objects.filter(inactive=False),
        widget=forms.SelectMultiple(attrs={'class': 'multiselect'}),
        required=False)
    quick_number_questions = forms.IntegerField(max_value=100,
                                                min_value=1,
                                                required=False)
    quick_number_answers = forms.IntegerField(max_value=6,
                                              min_value=2,
                                              required=False)

    def save(self, *args, **kwargs):
        instance = super(TestForm, self).save(*args, **kwargs)
        instance.enroll_students(self.cleaned_data['students'])
        return instance
Exemple #8
0
    def test_is_multiple(self):
        """`is_multiple` detects a SelectMultiple widget."""
        f = self.form()
        f.fields["level"].widget = forms.SelectMultiple()

        self.assertTrue(self.mtforms.is_multiple(f["level"]))