def create_poll(request): if request.method == 'POST': organization = get_organization(request) if not _is_smsc_configured(organization): return HttpResponse( json.dumps({ 'success': False, 'error_message': _("Your message could not be sent.") })) manager = get_database_manager(request.user) is_active, project_id, project_name = get_active_form_model_name_and_id( manager) if not is_active: response_dict = _create_response_dict(request) return HttpResponse(json.dumps(response_dict)) else: return HttpResponse( json.dumps({ 'success': False, 'error_message': 'Another poll is active', 'project_name_unique': project_name }))
def _create_reponse_for_activated_poll(manager, questionnaire, request): is_active, question_id_active, question_name_active = get_active_form_model_name_and_id( manager) is_current_active = _is_same_questionnaire(question_id_active, questionnaire) end_date = datetime.strptime(request.POST.get('end_date'), '%Y-%m-%dT%H:%M:%S') if is_current_active: _change_questionnaire_end_date(questionnaire, end_date) UserActivityLog().log(request, action=EDITED_END_DATE_POLL, project=questionnaire.name, detail=questionnaire.name) return {'success': True} elif not is_active and not is_current_active: _change_questionnaire_status(questionnaire, "active") _change_questionnaire_end_date(questionnaire, end_date) UserActivityLog().log(request, action=ACTIVATE_POLL, project=questionnaire.name, detail=questionnaire.name) return {'success': True} message = _( "To activate the Poll you must first deactivate your current Poll %s. You may only have one active Poll at a time." ) % question_name_active return { 'success': False, 'message': message, 'question_id_active': question_id_active, 'question_name_active': question_name_active }
def create_project(request): manager = get_database_manager(request.user) org = get_organization(request) is_active, project_active_id, project_active_name = get_active_form_model_name_and_id( manager) has_permission_on_active_project = True ngo_admin_email = get_ngo_admin_user_profiles_for(org)[0].user.email if is_active: user_permission = get_user_permission(user_id=request.user.id, dbm=manager) if user_permission is not None and project_active_id not in user_permission.project_ids: has_permission_on_active_project = False if request.method == 'GET': cancel_link = reverse('dashboard') if request.GET.get( 'prev', None) == 'dash' else reverse('alldata_index') return render_to_response('project/create_project.html', { 'preview_links': get_preview_and_instruction_links(), 'questionnaire_code': helper.generate_questionnaire_code(manager), 'is_edit': 'false', 'is_pro_sms': org.is_pro_sms, 'active_language': request.LANGUAGE_CODE, 'post_url': reverse(create_project), 'unique_id_types': json.dumps([ unique_id_type.capitalize() for unique_id_type in get_unique_id_types(manager) ]), 'has_permission_on_active_project': has_permission_on_active_project, 'ngo_admin_email': ngo_admin_email, 'cancel_link': cancel_link, 'is_active': is_active, 'project_active_id': project_active_id, 'project_active_name': project_active_name }, context_instance=RequestContext(request)) if request.method == 'POST': response_dict = _create_project_post_response(request, manager) return HttpResponse(json.dumps(response_dict))
def get_poll_info(request, project_id): manager = get_database_manager(request.user) questionnaire = Project.get(manager, project_id) project_links = get_project_link(questionnaire) questionnaire_active, active_poll_id, active_poll_name = get_active_form_model_name_and_id( manager) from_date = questionnaire.modified.date() to_date = questionnaire.end_date.date() languages_list = get_available_project_languages(manager) current_project_language = questionnaire.language num_of_recipients = _get_number_of_recipients_(project_id) return render_to_response( 'project/poll.html', RequestContext( request, { 'project': questionnaire, 'message_text': questionnaire.form_fields[0]['label'], 'project_links': project_links, 'is_active': questionnaire.active, 'from_date': from_date, 'is_pro_sms': get_organization(request).is_pro_sms, 'to_date': to_date, 'questionnaire_id': active_poll_id, 'questionnaire_name': active_poll_name, 'languages_list': json.dumps(languages_list), 'languages_link': reverse('languages'), 'current_project_language': current_project_language, 'post_url': reverse("project-language", args=[questionnaire.id]), 'get_poll_sent_messages': reverse("get_poll_sent_messages", args=[questionnaire.id]), 'questionnaire_code': questionnaire.form_code, 'num_of_recipients': num_of_recipients, }))
def activate_poll(request, project_id): if request.method == 'POST': manager = get_database_manager(request.user) questionnaire = Project.get(manager, project_id) if questionnaire: is_active, question_id_active, question_name_active = get_active_form_model_name_and_id( manager) is_current_active = _is_same_questionnaire(question_id_active, questionnaire) end_date = datetime.strptime(request.POST.get('end_date'), '%Y-%m-%dT%H:%M:%S') if is_current_active: _change_questionnaire_end_date(questionnaire, end_date) return HttpResponse(json.dumps({'success': True})) elif not is_active and not is_current_active: _change_questionnaire_status(questionnaire, "active") _change_questionnaire_end_date(questionnaire, end_date) UserActivityLog().log(request, action=ACTIVATE_POLL, project=questionnaire.name, detail=questionnaire.name) return HttpResponse(json.dumps({'success': True})) message = _( "To activate the Poll you must first deactivate your current Poll %s. You may only have one active Poll at a time." ) % question_name_active return HttpResponse( json.dumps({ 'success': False, 'message': message, 'question_id_active': question_id_active, 'question_name_active': question_name_active })) return HttpResponse( json.dumps({ 'success': False, 'message': "No Such questionnaire" }))