Esempio n. 1
0
 def __init__(self, *args, **kwargs):
     super(IndicatorForm, self).__init__(*args, **kwargs)
     if kwargs.get('instance'):
         qset = kwargs['instance'].question_set
         survey = kwargs['instance'].survey
         self.fields['survey'].initial = survey
         self.fields['survey'].widget.attrs['readonly'] = 'readonly'
         self.fields['question_set'].queryset = survey.qsets
         self.fields['question_set'].initial = qset
         self.fields['question_set'].widget.attrs['readonly'] = 'readonly'
         self.fields['variables'].initial = kwargs['instance'].variables.all()
     self.fields['variables'].queryset = self.available_variables()
     self.fields['variables'].icons = {
             'add': {
                 'data-toggle': "modal",
                 'data-target': "#add_variable",
                 'id': 'add_new_variable',
                 'title': 'Add Variable'},
             'edit': {
                 'data-toggle': "modal",
                 'title': 'Edit Variable',
                 'id': 'edit_variable'},
             'delete': {
                 'data-toggle': "modal",
                 'data-target': "#remove-selected-variable",
                 'id': 'delete_variable',
                 'title': 'Delete Variable'}}
     self.fields['formulae'].icons = {'check': {'id': 'validate', 'title': 'Validate'}, }
     if self.data.get('survey'):
         self.fields['question_set'].queryset = Survey.get(
             pk=self.data['survey']).qsets
     self.fields['name'].label = 'Indicator'
     self.order_fields(['survey', 'question_set', 'name',
                        'description', 'variables', 'formulae'])
Esempio n. 2
0
def wipe_survey_data(request, survey_id):
    from survey.models import Interview
    from survey.utils import views_helper
    if views_helper.has_super_powers(request):
        survey = Survey.get(pk=survey_id)
        Interview.objects.filter(survey=survey).delete()
        messages.info(request, 'Data has been cleared for %s' % survey.name)
    return HttpResponseRedirect(reverse('survey_list_page'))
Esempio n. 3
0
def wipe_survey_data(request, survey_id):
    from survey.models import Interview
    from survey.utils import views_helper
    if views_helper.has_super_powers(request):
        survey = Survey.get(pk=survey_id)
        Interview.objects.filter(survey=survey).delete()
        messages.info(request, 'Data has been cleared for %s' % survey.name)
    return HttpResponseRedirect(reverse('survey_list_page'))
Esempio n. 4
0
def list_qsets(request):
    if request.GET.get('survey_id'):
        values = Survey.get(id=request.GET.get('survey_id')).qsets.values(
            'id', 'name')
    else:
        values = QuestionSet.objects.values('id', 'name')
    return HttpResponse(json.dumps(list(values)),
                        content_type='application/json')
Esempio n. 5
0
def list_qsets(request):
    if request.GET.get('survey_id'):
        values = Survey.get(
            id=request.GET.get('survey_id')).qsets.values(
            'id', 'name')
    else:
        values = QuestionSet.objects.values('id', 'name')
    return HttpResponse(
        json.dumps(
            list(values)),
        content_type='application/json')
Esempio n. 6
0
def index(request, survey_id=None):
    if survey_id:
        survey = Survey.get(pk=survey_id)
    request.breadcrumbs(Batch.index_breadcrumbs(survey=survey))
    if survey_id is None:
        batches = Batch.objects.all()
    else:
        batches = Batch.objects.filter(survey__id=survey_id)
    qset_view = QuestionSetView(model_class=Batch)
    qset_view.questionSetForm = BatchForm
    return qset_view.index(request,
                           batches,
                           extra_context={'survey': survey},
                           initial={'survey': survey.pk})
Esempio n. 7
0
def index(request, survey_id=None):
    if survey_id:
        survey = Survey.get(pk=survey_id)
    request.breadcrumbs(Batch.index_breadcrumbs(survey=survey))
    if survey_id is None:
        batches = Batch.objects.all()
    else:
        batches = Batch.objects.filter(survey__id=survey_id)
    qset_view = QuestionSetView(model_class=Batch)
    qset_view.questionSetForm = BatchForm
    return qset_view.index(
        request, batches, extra_context={
            'survey': survey}, initial={
            'survey': survey.pk})
Esempio n. 8
0
 def __init__(self, *args, **kwargs):
     super(IndicatorForm, self).__init__(*args, **kwargs)
     if kwargs.get('instance'):
         qset = kwargs['instance'].question_set
         survey = kwargs['instance'].survey
         self.fields['survey'].initial = survey
         self.fields['survey'].widget.attrs['readonly'] = 'readonly'
         self.fields['question_set'].queryset = survey.qsets
         self.fields['question_set'].initial = qset
         self.fields['question_set'].widget.attrs['readonly'] = 'readonly'
         self.fields['variables'].initial = kwargs[
             'instance'].variables.all()
     self.fields['variables'].queryset = self.available_variables()
     self.fields['variables'].icons = {
         'add': {
             'data-toggle': "modal",
             'data-target': "#add_variable",
             'id': 'add_new_variable',
             'title': 'Add Variable'
         },
         'edit': {
             'data-toggle': "modal",
             'title': 'Edit Variable',
             'id': 'edit_variable'
         },
         'delete': {
             'data-toggle': "modal",
             'data-target': "#remove-selected-variable",
             'id': 'delete_variable',
             'title': 'Delete Variable'
         }
     }
     self.fields['formulae'].icons = {
         'check': {
             'id': 'validate',
             'title': 'Validate'
         },
     }
     if self.data.get('survey'):
         self.fields['question_set'].queryset = Survey.get(
             pk=self.data['survey']).qsets
     self.fields['name'].label = 'Indicator'
     self.order_fields([
         'survey', 'question_set', 'name', 'description', 'variables',
         'formulae'
     ])
Esempio n. 9
0
 def handle(self, *args, **kwargs):
     """Basically loads each line of the csv as9 responses to the question set
     each row is seen as a seperate interview.9
     first field would be the ea ID, subsequent fields would be the answers9
     :param args:
     :param kwargs:
     :return:
     """
     self.stdout.write('Starting...')
     delimiter = kwargs.get('delim', ',')
     df = pd.read_csv(args[0], delimiter=delimiter)
     interviewer = Interviewer.get(pk=args[1])
     survey = Survey.get(pk=args[2])
     qset = QuestionSet.get(pk=int(args[3]))
     odk_access = interviewer.odk_access[0]
     all_questions = qset.all_questions
     eas = {}
     #>with transaction.atomic():
     df.apply(save_interview,
              axis=1,
              args=(interviewer, odk_access, survey, qset, all_questions,
                    eas))
     self.stdout.write('Successfully imported!')