app/soc/views/models/student.py
changeset 2371 805400745f57
parent 2360 e389d26949db
child 2656 25210120d67b
equal deleted inserted replaced
2370:85ed68167efb 2371:805400745f57
    19 
    19 
    20 __authors__ = [
    20 __authors__ = [
    21     '"Lennard de Rijk" <ljvderijk@gmail.com>'
    21     '"Lennard de Rijk" <ljvderijk@gmail.com>'
    22   ]
    22   ]
    23 
    23 
       
    24 
       
    25 import time
    24 
    26 
    25 from django import forms
    27 from django import forms
    26 from django.utils.translation import ugettext
    28 from django.utils.translation import ugettext
    27 
    29 
    28 from soc.logic import cleaning
    30 from soc.logic import cleaning
    97 
    99 
    98     new_params['extra_django_patterns'] = patterns
   100     new_params['extra_django_patterns'] = patterns
    99 
   101 
   100     new_params['extra_dynaexclude'] = ['agreed_to_tos', 'school']
   102     new_params['extra_dynaexclude'] = ['agreed_to_tos', 'school']
   101 
   103 
       
   104     current_year = time.gmtime().tm_year
       
   105     # the current year is not the minimum because a program could span
       
   106     # more than one year
       
   107     allowed_years = range(current_year-1, current_year+20)
       
   108 
   102     new_params['create_extra_dynaproperties'] = {
   109     new_params['create_extra_dynaproperties'] = {
   103         'expected_graduation': forms.IntegerField(required=True,
   110         'expected_graduation': forms.TypedChoiceField(
   104                                                   max_value=2030,
   111             choices=[(x,x) for x in allowed_years],
   105                                                   min_value=2009)
   112             coerce=lambda val: int(val)
   106         }
   113             )
       
   114         } 
   107 
   115 
   108     new_params['create_dynafields'] = [
   116     new_params['create_dynafields'] = [
   109         {'name': 'scope_path',
   117         {'name': 'scope_path',
   110          'base': forms.fields.CharField,
   118          'base': forms.fields.CharField,
   111          'widget': forms.HiddenInput,
   119          'widget': forms.HiddenInput,