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'])
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'))
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')
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')
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})
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})
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' ])
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!')