app/soc/views/helper/surveys.py
changeset 2463 05af53239799
parent 2451 c58a7ea6c126
child 2465 037a7e79a635
equal deleted inserted replaced
2462:2d5d2961f774 2463:05af53239799
    38 from django.utils.html import escape
    38 from django.utils.html import escape
    39 from django.utils.safestring import mark_safe
    39 from django.utils.safestring import mark_safe
    40 
    40 
    41 from soc.logic import dicts
    41 from soc.logic import dicts
    42 from soc.logic.lists import Lists
    42 from soc.logic.lists import Lists
    43 from soc.logic.models.survey import logic as survey_logic
       
    44 from soc.logic.models.survey_record import logic as results_logic
       
    45 from soc.models.survey import SurveyContent
    43 from soc.models.survey import SurveyContent
    46 
    44 
    47 
    45 
    48 class SurveyForm(djangoforms.ModelForm):
    46 class SurveyForm(djangoforms.ModelForm):
    49   """Main SurveyContent form.
    47   """Main SurveyContent form.
    67 
    65 
    68     self.kwargs = kwargs
    66     self.kwargs = kwargs
    69     self.survey_content = self.kwargs.pop('survey_content', None)
    67     self.survey_content = self.kwargs.pop('survey_content', None)
    70     self.this_user = self.kwargs.pop('this_user', None)
    68     self.this_user = self.kwargs.pop('this_user', None)
    71     self.project = self.kwargs.pop('project', None)
    69     self.project = self.kwargs.pop('project', None)
       
    70     self.survey_logic = self.kwargs.pop('survey_logic', None)
    72     self.survey_record = self.kwargs.pop('survey_record', None)
    71     self.survey_record = self.kwargs.pop('survey_record', None)
    73 
    72 
    74     self.read_only = self.kwargs.pop('read_only', None)
    73     self.read_only = self.kwargs.pop('read_only', None)
    75     self.editing = self.kwargs.pop('editing', None)
    74     self.editing = self.kwargs.pop('editing', None)
    76 
    75 
   102     if not self.editing:
   101     if not self.editing:
   103       # only survey taking can be read-only
   102       # only survey taking can be read-only
   104       read_only = self.read_only
   103       read_only = self.read_only
   105 
   104 
   106       if not read_only:
   105       if not read_only:
   107         deadline = self.survey_content.survey_parent.get().survey_end
   106         survey_content = self.survey_content
       
   107         survey_entity = self.survey_logic.getSurveyForContent(survey_content)
       
   108         deadline = survey_entity.survey_end
   108         read_only =  deadline and (datetime.datetime.now() > deadline)
   109         read_only =  deadline and (datetime.datetime.now() > deadline)
   109       else:
   110       else:
   110         extra_attrs['disabled'] = 'disabled'
   111         extra_attrs['disabled'] = 'disabled'
   111 
   112 
   112     # add unordered fields to self.survey_fields
   113     # add unordered fields to self.survey_fields
   546       order: order for list results
   547       order: order for list results
   547       idx: index for list results
   548       idx: index for list results
   548       context: context dict for template
   549       context: context dict for template
   549     """
   550     """
   550 
   551 
   551     logic = results_logic
   552     survey_logic = params['logic']
       
   553     record_logic = survey_logic.getRecordLogic()
   552     filter = {'survey': survey}
   554     filter = {'survey': survey}
   553     data = logic.getForFields(filter=filter, limit=limit, offset=offset,
   555     data = record_logic.getForFields(filter=filter, limit=limit, offset=offset,
   554                               order=order)
   556                               order=order)
   555 
   557 
   556     params['name'] = "Survey Results"
   558     params['name'] = "Survey Results"
   557     content = {
   559     content = {
   558       'idx': idx,
   560       'idx': idx,