Esempio n. 1
0
def survey_update(request, survey_id):
    survey = Survey.objects.get(id=survey_id)
    if request.method == 'POST':
        form = SurveyForm(request.POST)
        try:
            title = request.POST.get('title')
            survey.title = title

            datastore = request.POST.get('datastore')
            survey.datastore_id = datastore

            survey.save()

            ordered = request.POST.get('order')

            if ordered.__len__() > 0:
                ids = ordered.split(',')
                count = 0
                for id in ids:
                    section = SurveySection.objects.get(id=id)
                    section.order = count
                    section.save()
                    count = count + 1

            return HttpResponseRedirect(
                reverse('survey_permissions', kwargs={'survey_id': survey_id}))

        except Exception as e:
            try:
                msg = e.get_message()
            except:
                msg = _("Error: survey could not be published")
            form.add_error(None, msg)

    else:
        form = SurveyForm(instance=survey)

    if not request.user.is_superuser:
        form.fields['datastore'].queryset = Datastore.objects.filter(
            created_by__exact=request.user.username)

    sections = SurveySection.objects.filter(
        survey_id=survey.id).order_by('order')

    image = ''
    if survey.project_id:
        p = survey.project
        if "no_project.png" in p.image.url:
            image = p.image.url.replace(settings.MEDIA_URL, '')
        else:
            image = p.image.url

    response = {
        'form': form,
        'survey': survey,
        'image': image,
        'sections': sections
    }

    return render(request, 'survey_update.html', response)
Esempio n. 2
0
def survey_add(request):
    if request.method == 'POST':
        form = SurveyForm(request.POST)
        has_errors = False
        try:
            newSurvey = Survey()

            name = request.POST.get('name')
            newSurvey.name = name
            
            title = request.POST.get('title')
            newSurvey.title = title
            
            datastore = request.POST.get('datastore')
            newSurvey.datastore_id = datastore
            
            exists = False
            projects = Project.objects.all()
            for p in projects:
                if name == p.name:
                    exists = True
            
            if name == '':
                message = _(u'You must enter an survey name')
                return render(request, 'survey_add.html', {'message': message, 'form': form})
            
            if _valid_name_regex.search(name) == None:
                message = _(u"Invalid survey name: '{value}'. Identifiers must begin with a letter or an underscore (_). Subsequent characters can be letters, underscores or numbers").format(value=name)
                return render(request, 'survey_add.html', {'message': message, 'form': form})
              
            if not exists:     
                newSurvey.save()
                return redirect('survey_update', survey_id=newSurvey.id)
            else:
                message = _(u'Exists a project with the same name')
                return render(request, 'survey_add.html', {'message': message, 'form': form})
        
       
            #msg = _("Error: fill all the survey fields")
            #form.add_error(None, msg)
            
        except Exception as e:
            try:
                msg = e.get_message()
            except:
                msg = _("Error: survey could not be published")
            form.add_error(None, msg)

    else:
        form = SurveyForm()
        
    return render(request, 'survey_add.html', {'form': form})