Beispiel #1
0
def audio_add(request):
    """Add new Audio for the logged in user

    **Attributes**:

        * ``form`` - SurveyCustomerAudioFileForm
        * ``template`` - frontend/audio/audio_change.html

    **Logic Description**:

        * Add a new audio which will belong to the logged in user
          via the CustomerAudioFileForm & get redirected to the audio list
    """
    form = DialerAudioFileForm()
    if request.method == 'POST':
        form = DialerAudioFileForm(request.POST, request.FILES)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = request.user
            obj.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['name']}
            return HttpResponseRedirect('/audio/')

    template = 'frontend/audio/audio_change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'AUDIO_DEBUG': settings.AUDIO_DEBUG,
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #2
0
def dnc_add(request):
    """Add new DNC for the logged in user

    **Attributes**:

        * ``form`` - DNCForm
        * ``template`` - frontend/dnc_list/change.html

    **Logic Description**:

        * Add a new DNC which will belong to the logged in user
          via the DNCForm & get redirected to the dnc list
    """
    form = DNCForm()
    if request.method == 'POST':
        form = DNCForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = request.user
            obj.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['name']}
            return HttpResponseRedirect('/dnc_list/')
    template = 'frontend/dnc_list/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #3
0
def survey_view(request, object_id):
    """View locked survey

    **Logic Description**:

        * Update/delete selected survey from the survey list
          via SurveyForm & get redirected to survey list
    """
    survey = get_object_or_404(Survey, pk=object_id, user=request.user)

    section_list = Section.objects.filter(survey=survey).order_by('order')

    branching_list = Branching.objects\
        .filter(section__survey=survey).order_by('id')

    branching_section_list =\
        branching_list.values_list('section_id', flat=True).distinct()

    template = 'frontend/survey/survey_view.html'

    data = {
        'survey_obj_id': object_id,
        'survey': survey,
        'section_list': section_list,
        'branching_list': branching_list,
        'branching_section_list': branching_section_list,
        'module': current_view(request),
        'action': 'view',
        'msg': request.session.get('msg'),
        'SECTION_TYPE': SECTION_TYPE,
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #4
0
def survey_add(request):
    """Add new Survey for the logged in user

    **Attributes**:

        * ``form`` - SurveyForm
        * ``template`` - frontend/survey/change.html

    **Logic Description**:

        * Add a new survey which will belong to the logged in user
          via the SurveyForm & get redirected to the survey list
    """
    form = SurveyForm()
    if request.method == 'POST':
        form = SurveyForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = User.objects.get(username=request.user)
            obj.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['name']}
            return HttpResponseRedirect('/survey/%s/' % (obj.id))
    template = 'frontend/survey/survey_change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #5
0
def dnc_contact_export_view(request):
    """Export CSV file of dnc contact form view

    **Attributes**:

        * ``form`` - DNCContact_fileExport
        * ``template`` - frontend/dnc_contact/export_dnc_contact.html

    **Logic Description**:

        * DNC contacts export form will be redirected to ``/dnc_contact/export/`` view
          with format & dnc_list_id parameters
    """
    form = DNCContact_fileExport(request.user,
                                 initial={'export_to': EXPORT_CHOICE.CSV})
    if request.method == 'POST':
        dnc_list_id = request.POST['dnc_list']
        export_to = request.POST['export_to']
        return HttpResponseRedirect('/dnc_contact/export/?format=' +
                                    export_to + '&dnc_list_id=' + dnc_list_id)

    template = 'frontend/dnc_contact/export_dnc_contact.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'update',
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #6
0
def dnc_add(request):
    """Add new DNC for the logged in user

    **Attributes**:

        * ``form`` - DNCForm
        * ``template`` - frontend/dnc_list/change.html

    **Logic Description**:

        * Add a new DNC which will belong to the logged in user
          via the DNCForm & get redirected to the dnc list
    """
    form = DNCForm()
    if request.method == 'POST':
        form = DNCForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = request.user
            obj.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['name']}
            return HttpResponseRedirect('/dnc_list/')
    template = 'frontend/dnc_list/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #7
0
def audio_change(request, object_id):
    """Update Audio for the logged in user

    **Attributes**:

        * ``form`` - SurveyCustomerAudioFileForm
        * ``template`` - frontend/audio/audio_change.html

    **Logic Description**:

        * Update audio which is belong to the logged in user
          via the CustomerAudioFileForm & get redirected to the audio list
    """
    obj = get_object_or_404(AudioFile, pk=object_id, user=request.user)
    form = DialerAudioFileForm(instance=obj)

    if request.method == 'POST':
        if request.POST.get('delete'):
            return HttpResponseRedirect('/audio/del/%s/' % object_id)

        form = DialerAudioFileForm(request.POST, request.FILES, instance=obj)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/audio/')

    template = 'frontend/audio/audio_change.html'
    data = {
        'form': form,
        'module': current_view(request),
        'action': 'update',
        'AUDIO_DEBUG': settings.AUDIO_DEBUG,
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #8
0
def voiceapp_add(request):
    """Add new Voice App for logged in user

    **Attributes**:

        * ``form`` - VoiceAppForm
        * ``template`` - frontend/voiceapp/change.html

    **Logic Description**:

        * Add new voice app which will belong to logged in user
          via VoiceAppForm form & get redirect to voiceapp list
    """
    form = VoiceAppForm()
    if request.method == 'POST':
        form = VoiceAppForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = User.objects.get(username=request.user)
            obj.save()
            request.session["msg"] = _('"%(name)s" is added.') %\
                request.POST
            return HttpResponseRedirect('/voiceapp/')
    template = 'frontend/voiceapp/change.html'
    data = {
       'module': current_view(request),
       'form': form,
       'action': 'add',
       'notice_count': notice_count(request),
       'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template, data,
           context_instance=RequestContext(request))
Beispiel #9
0
def survey_add(request):
    """Add new Survey for the logged in user

    **Attributes**:

        * ``form`` - SurveyForm
        * ``template`` - frontend/survey/change.html

    **Logic Description**:

        * Add a new survey which will belong to the logged in user
          via the SurveyForm & get redirected to the survey list
    """
    form = SurveyForm()
    if request.method == 'POST':
        form = SurveyForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = User.objects.get(username=request.user)
            obj.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['name']}
            return HttpResponseRedirect('/survey/%s/' % (obj.id))
    template = 'frontend/survey/survey_change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
    }
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #10
0
def trust_control(request):
    #Blacklist, Whitelist
    prefix_list = \
        map(str, Prefix.objects.values_list("prefix", flat=True).all().order_by('prefix'))
    prefix_list = (','.join('"' + item + '"' for item in prefix_list))
    prefix_list = "[" + str(prefix_list) + "]"

    blacklist = Blacklist.objects.filter(user=request.user).order_by('id')
    whitelist = Whitelist.objects.filter(user=request.user).order_by('id')

    # blacklist form
    bl_country_form = BWCountryForm()
    bl_prefix_form = BWPrefixForm()

    # whitelist form
    wl_country_form = BWCountryForm()
    wl_prefix_form = BWPrefixForm()

    template = 'frontend/cdr_alert/common_black_white_list.html'
    data = {
        'module': current_view(request),
        'prefix_list': prefix_list,
        'bl_country_form': bl_country_form,
        'bl_prefix_form': bl_prefix_form,
        'wl_country_form': wl_country_form,
        'wl_prefix_form': wl_prefix_form,
        'blacklist': blacklist,
        'whitelist': whitelist,
        'notice_count': notice_count(request),
    }
    return render_to_response(template, data,
        context_instance=RequestContext(request))
Beispiel #11
0
def survey_view(request, object_id):
    """View locked survey

    **Logic Description**:

        * Update/delete selected survey from the survey list
          via SurveyForm & get redirected to survey list
    """
    survey = get_object_or_404(
        Survey, pk=object_id, user=request.user)

    section_list = Section.objects.filter(survey=survey).order_by('order')

    branching_list = Branching.objects\
        .filter(section__survey=survey).order_by('id')

    branching_section_list =\
        branching_list.values_list('section_id', flat=True).distinct()

    template = 'frontend/survey/survey_view.html'

    data = {
        'survey_obj_id': object_id,
        'survey': survey,
        'section_list': section_list,
        'branching_list': branching_list,
        'branching_section_list': branching_section_list,
        'module': current_view(request),
        'action': 'view',
        'msg': request.session.get('msg'),
        'SECTION_TYPE': SECTION_TYPE,
    }
    return render_to_response(template, data,
        context_instance=RequestContext(request))
Beispiel #12
0
def campaign_add(request):
    """Add a new campaign for the logged in user

    **Attributes**:

        * ``form`` - CampaignForm
        * ``template`` - frontend/campaign/change.html

    **Logic Description**:

        * Before adding a campaign, check dialer setting limit if
          applicable to the user.
        * Add the new campaign which will belong to the logged in user
          via CampaignForm & get redirected to campaign list
    """
    # If dialer setting is not attached with user, redirect to campaign list
    if not user_dialer_setting(request.user):
        request.session['error_msg'] = \
            _("in order to add a campaign, you need to have your settings configured properly, please contact the admin.")
        return HttpResponseRedirect("/campaign/")

    # Check dialer setting limit
    if request.user and request.method != 'POST':
        # check Max Number of running campaign
        if check_dialer_setting(request, check_for="campaign"):
            msg = _("you have too many campaigns. Max allowed %(limit)s") \
                % {'limit': dialer_setting_limit(request, limit_for="campaign")}
            request.session['msg'] = msg

            # campaign limit reached
            frontend_send_notification(request, NOTIFICATION_NAME.campaign_limit_reached)
            return HttpResponseRedirect("/campaign/")

    form = CampaignForm(request.user)
    # Add campaign
    if request.method == 'POST':
        form = CampaignForm(request.user, request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            contenttype = get_content_type(form.cleaned_data['content_object'])
            obj.content_type = contenttype['object_type']
            obj.object_id = contenttype['object_id']
            obj.user = request.user
            obj.save()

            form.save_m2m()

            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['name']}
            return HttpResponseRedirect('/campaign/')

    template = 'frontend/campaign/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'AMD': settings.AMD,
    }
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #13
0
def alarm_add(request):
    """Add new Alarm for the logged in user

    **Attributes**:

        * ``form`` - AlarmForm
        * ``template`` - frontend/cdr_alert/alarm/change.html

    **Logic Description**:

        * Add a new Alarm which will belong to the logged in user
          via the AlarmForm & get redirected to the Alarm list
    """
    form = AlarmForm()
    if request.method == 'POST':
        form = AlarmForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = User.objects.get(username=request.user)
            obj.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                                     {'name': request.POST['name']}
            return HttpResponseRedirect('/alert/')
    template = 'frontend/cdr_alert/alarm/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'notice_count': notice_count(request),
    }
    return render_to_response(template, data,
        context_instance=RequestContext(request))
Beispiel #14
0
def dnc_contact_export_view(request):
    """Export CSV file of dnc contact form view

    **Attributes**:

        * ``form`` - DNCContact_fileExport
        * ``template`` - frontend/dnc_contact/export_dnc_contact.html

    **Logic Description**:

        * DNC contacts export form will be redirected to ``/dnc_contact/export/`` view
          with format & dnc_list_id parameters
    """
    form = DNCContact_fileExport(request.user, initial={'export_to': EXPORT_CHOICE.CSV})
    if request.method == 'POST':
        dnc_list_id = request.POST['dnc_list']
        export_to = request.POST['export_to']
        return HttpResponseRedirect('/dnc_contact/export/?format=' + export_to + '&dnc_list_id=' + dnc_list_id)

    template = 'frontend/dnc_contact/export_dnc_contact.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'update',
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #15
0
def audio_add(request):
    """Add new Audio for the logged in user

    **Attributes**:

        * ``form`` - SurveyCustomerAudioFileForm
        * ``template`` - frontend/audio/audio_change.html

    **Logic Description**:

        * Add a new audio which will belong to the logged in user
          via the CustomerAudioFileForm & get redirected to the audio list
    """
    form = DialerAudioFileForm()
    if request.method == 'POST':
        form = DialerAudioFileForm(request.POST, request.FILES)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.user = request.user
            obj.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['name']}
            return HttpResponseRedirect('/audio/')

    template = 'frontend/audio/audio_change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'AUDIO_DEBUG': settings.AUDIO_DEBUG,
    }
    return render_to_response(template, data,
           context_instance=RequestContext(request))
Beispiel #16
0
def audio_change(request, object_id):
    """Update Audio for the logged in user

    **Attributes**:

        * ``form`` - SurveyCustomerAudioFileForm
        * ``template`` - frontend/audio/audio_change.html

    **Logic Description**:

        * Update audio which is belong to the logged in user
          via the CustomerAudioFileForm & get redirected to the audio list
    """
    obj = get_object_or_404(AudioFile, pk=object_id, user=request.user)
    form = DialerAudioFileForm(instance=obj)    

    if request.method == 'POST':
        if request.POST.get('delete'):        
            return HttpResponseRedirect('/audio/del/%s/' % object_id)
            
        form = DialerAudioFileForm(
            request.POST, request.FILES, instance=obj)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/audio/')

    template = 'frontend/audio/audio_change.html'
    data = {
        'form': form,
        'module': current_view(request),
        'action': 'update',
        'AUDIO_DEBUG': settings.AUDIO_DEBUG,
    }
    return render_to_response(template, data,
           context_instance=RequestContext(request))
Beispiel #17
0
def api_list_view(request):
    """
    Get List of API names & their links
    """
    exclude_file = ['__init__.py', 'urls.py', 'views.py']
    list_of_api = []
    os.chdir(settings.APPLICATION_DIR + "/api/api_playgrounds/")
    for files in os.listdir("."):
        if files.endswith(".py") and files.endswith(".py"):
            if str(files) not in exclude_file:
                api_arr = str(files).split('_playground.py')
                api_link = '/api-explorer/' + api_arr[0].replace("_", "-")
                list_of_api.append({
                    'api_name': api_arr[0],
                    'api_link': api_link
                })

    template = 'frontend/api/api_list.html'
    data = {
        'list_of_api': list_of_api,
        'notice_count': notice_count(request),
        'module': current_view(request),
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #18
0
def campaign_duplicate(request, id):
    """
    Duplicate campaign via DuplicateCampaignForm

    **Attributes**:

        * ``id`` - Selected campaign object
        * ``form`` - DuplicateCampaignForm
        * ``template`` - frontend/campaign/campaign_duplicate.html
    """
    form = DuplicateCampaignForm(request.user)
    request.session['error_msg'] = ''
    if request.method == 'POST':
        form = DuplicateCampaignForm(request.user, request.POST)
        if form.is_valid():

            original_camp = campaign_obj = Campaign.objects.get(pk=id)
            #Make duplicate survey
            new_survey_id = campaign_obj.object_id

            campaign_obj.pk = None
            campaign_obj.campaign_code = request.POST.get('campaign_code')
            campaign_obj.name = request.POST.get('name')
            campaign_obj.status = CAMPAIGN_STATUS.PAUSE
            campaign_obj.totalcontact = 0
            campaign_obj.completed = 0
            campaign_obj.startingdate = datetime.now()
            campaign_obj.expirationdate = datetime.now() + relativedelta(days=+1)
            campaign_obj.imported_phonebook = ''
            campaign_obj.has_been_started = False
            campaign_obj.has_been_duplicated = True
            campaign_obj.save()

            if campaign_obj.content_type.model == 'survey':
                new_survey_id = make_duplicate_survey(original_camp, campaign_obj)

            campaign_obj.object_id = new_survey_id
            campaign_obj.save()

            # Many to many field
            for pb in request.POST.getlist('phonebook'):
                campaign_obj.phonebook.add(pb)

            return HttpResponseRedirect('/campaign/')
        else:
            request.session['error_msg'] = True
    else:
        request.session['error_msg'] = ''

    template = 'frontend/campaign/campaign_duplicate.html'
    data = {
        'module': current_view(request),
        'campaign_id': id,
        'form': form,
        'err_msg': request.session.get('error_msg'),
    }
    request.session['error_msg'] = ''
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #19
0
def survey_change(request, object_id):
    """Update/Delete Survey for the logged in user

    **Attributes**:

        * ``object_id`` - Selected survey object
        * ``form`` - SurveyForm
        * ``template`` - frontend/survey/change.html

    **Logic Description**:

        * Update/delete selected survey from the survey list
          via SurveyForm & get redirected to survey list
    """
    survey = SurveyApp.objects.get(pk=object_id)
    survey_que_list = SurveyQuestion.objects\
        .filter(surveyapp=survey).order_by('order')

    survey_response_list = {}
    for survey_que in survey_que_list:
        res_list = SurveyResponse.objects\
                    .filter(surveyquestion=survey_que).order_by('key')
        if res_list:
            # survey question response
            survey_response_list['%s' % survey_que.id] = res_list

    form = SurveyForm(instance=survey)

    if request.method == 'POST':
        if request.POST.get('delete'):
            survey_del(request, object_id)
            return HttpResponseRedirect('/survey/')
        else:
            form = SurveyForm(request.POST, request.user, instance=survey)
            if form.is_valid():
                form.save()
                request.session["msg"] = _('"%(name)s" is updated.')\
                    % {'name': request.POST['name']}
                return HttpResponseRedirect('/survey/')

    template = 'frontend/survey/survey_change.html'

    data = {
        'survey_obj_id': object_id,
        'survey_que_list': survey_que_list,
        'survey_response_list': survey_response_list,
        'module': current_view(request),
        'action': 'update',
        'form': form,
        'msg': request.session.get('msg'),
        'notice_count': notice_count(request),
    }
    request.session['msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #20
0
def survey_response_change(request, id):
    """Update survey question for the logged in user

    **Attributes**:

        * ``form`` - SurveyQuestionForm
        * ``template`` - frontend/survey/survey_question.html

    **Logic Description**:

        *
    """
    survey_resp = SurveyResponse.objects.get(pk=int(id))
    form = SurveyResponseForm(request.user,
                              survey_resp.surveyquestion.surveyapp_id,
                              instance=survey_resp)
    request.session['err_msg'] = ''
    if request.GET.get('delete'):
        # perform delete
        surveyapp_id = survey_resp.surveyquestion.surveyapp_id
        survey_resp.delete()
        return HttpResponseRedirect('/survey/%s/' % str(surveyapp_id))

    if request.method == 'POST':
        form = SurveyResponseForm(request.user,
                                  survey_resp.surveyquestion.surveyapp_id,
                                  request.POST,
                                  instance=survey_resp)
        if form.is_valid():
            obj = form.save()
            return HttpResponseRedirect('/survey/%s/#row%s'\
                % (obj.surveyquestion.surveyapp_id,
                   obj.surveyquestion.id))
        else:
            duplicate_count =\
                SurveyResponse.objects.filter(key=request.POST['key'],
                    surveyquestion=survey_resp.surveyquestion).count()
            if request.POST['key'] == survey_resp.key:
                if duplicate_count >= 1:
                    form._errors["key"] = _("duplicate record key !")
            request.session["err_msg"] = _('Response is not added.')

    template = 'frontend/survey/survey_response_change.html'
    data = {
        'form': form,
        'surveyquestion_id': survey_resp.surveyquestion_id,
        'surveyapp_id': survey_resp.surveyquestion.surveyapp_id,
        'survey_response_id': id,
        'module': current_view(request),
        'action': 'update',
        'err_msg': request.session.get('err_msg'),
    }
    request.session['err_msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #21
0
def contact_add(request):
    """Add a new contact into the selected phonebook for the logged in user

    **Attributes**:

        * ``form`` - ContactForm
        * ``template`` - frontend/contact/change.html

    **Logic Description**:

        * Before adding a contact, check dialer setting limit if applicable
          to the user.
        * Add new contact belonging to the logged in user
          via ContactForm & get redirected to the contact list
    """
    # Check dialer setting limit
    if request.user and request.method == 'POST':
        # check  Max Number of subscriber per campaign
        if check_dialer_setting(request, check_for="contact"):
            request.session['msg'] = \
                _("you have too many contacts per campaign. you are allowed a maximum of %(limit)s") % \
                {'limit': dialer_setting_limit(request, limit_for="contact")}

            # contact limit reached
            frontend_send_notification(request,
                                       NOTIFICATION_NAME.contact_limit_reached)
            return HttpResponseRedirect("/contact/")

    form = ContactForm(request.user)
    error_msg = False
    # Add contact
    if request.method == 'POST':
        form = ContactForm(request.user, request.POST)
        if form.is_valid():
            form.save()
            request.session["msg"] = _(
                '"%s" is added.') % request.POST['contact']
            return HttpResponseRedirect('/contact/')
        else:
            if len(request.POST['contact']) > 0:
                error_msg = _(
                    '"%s" cannot be added.') % request.POST['contact']

    phonebook_count = Phonebook.objects.filter(user=request.user).count()
    template = 'frontend/contact/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'error_msg': error_msg,
        'phonebook_count': phonebook_count,
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #22
0
def survey_change(request, object_id):
    """Update/Delete Survey for the logged in user

    **Attributes**:

        * ``object_id`` - Selected survey object
        * ``form`` - SurveyForm
        * ``template`` - frontend/survey/change.html

    **Logic Description**:

        * Update/delete selected survey from the survey list
          via SurveyForm & get redirected to survey list
    """
    survey = SurveyApp.objects.get(pk=object_id)
    survey_que_list = SurveyQuestion.objects\
        .filter(surveyapp=survey).order_by('order')

    survey_response_list = {}
    for survey_que in survey_que_list:
        res_list = SurveyResponse.objects\
                    .filter(surveyquestion=survey_que).order_by('key')
        if res_list:
            # survey question response
            survey_response_list['%s' % survey_que.id] = res_list

    form = SurveyForm(instance=survey)

    if request.method == 'POST':
        if request.POST.get('delete'):
            survey_del(request, object_id)
            return HttpResponseRedirect('/survey/')
        else:
            form = SurveyForm(request.POST, request.user, instance=survey)
            if form.is_valid():
                form.save()
                request.session["msg"] = _('"%(name)s" is updated.')\
                    % {'name': request.POST['name']}
                return HttpResponseRedirect('/survey/')

    template = 'frontend/survey/survey_change.html'

    data = {
        'survey_obj_id': object_id,
        'survey_que_list': survey_que_list,
        'survey_response_list': survey_response_list,
        'module': current_view(request),
        'action': 'update',
        'form': form,
        'msg': request.session.get('msg'),
        'notice_count': notice_count(request),
        }
    request.session['msg'] = ''
    return render_to_response(template, data,
        context_instance=RequestContext(request))
Beispiel #23
0
def survey_response_change(request, id):
    """Update survey question for the logged in user

    **Attributes**:

        * ``form`` - SurveyQuestionForm
        * ``template`` - frontend/survey/survey_question.html

    **Logic Description**:

        *
    """
    survey_resp = SurveyResponse.objects.get(pk=int(id))
    form = SurveyResponseForm(request.user,
        survey_resp.surveyquestion.surveyapp_id,
        instance=survey_resp)
    request.session['err_msg'] = ''
    if request.GET.get('delete'):
        # perform delete
        surveyapp_id = survey_resp.surveyquestion.surveyapp_id
        survey_resp.delete()
        return HttpResponseRedirect('/survey/%s/' % str(surveyapp_id))

    if request.method == 'POST':
        form = SurveyResponseForm(request.user,
                    survey_resp.surveyquestion.surveyapp_id,
                    request.POST,
                    instance=survey_resp)
        if form.is_valid():
            obj = form.save()
            return HttpResponseRedirect('/survey/%s/#row%s'\
                % (obj.surveyquestion.surveyapp_id,
                   obj.surveyquestion.id))
        else:
            duplicate_count =\
                SurveyResponse.objects.filter(key=request.POST['key'],
                    surveyquestion=survey_resp.surveyquestion).count()
            if request.POST['key'] == survey_resp.key:
                if duplicate_count >= 1:
                    form._errors["key"] = _("duplicate record key !")
            request.session["err_msg"] = _('Response is not added.')

    template = 'frontend/survey/survey_response_change.html'
    data = {
        'form': form,
        'surveyquestion_id': survey_resp.surveyquestion_id,
        'surveyapp_id': survey_resp.surveyquestion.surveyapp_id,
        'survey_response_id': id,
        'module': current_view(request),
        'action': 'update',
        'err_msg': request.session.get('err_msg'),
        }
    request.session['err_msg'] = ''
    return render_to_response(template, data,
        context_instance=RequestContext(request))
Beispiel #24
0
def survey_change(request, object_id):
    """Update/Delete Survey for the logged in user

    **Attributes**:

        * ``object_id`` - Selected survey object
        * ``form`` - SurveyForm
        * ``template`` - frontend/survey/change.html

    **Logic Description**:

        * Update/delete selected survey from the survey list
          via SurveyForm & get redirected to survey list
    """
    survey = get_object_or_404(Survey_template,
                               pk=object_id,
                               user=request.user)

    section_list = Section_template.objects.filter(
        survey=survey).order_by('order')
    form = SurveyForm(instance=survey)
    branching_list = Branching_template.objects\
        .filter(section__survey=survey).order_by('id')

    branching_section_list = \
        branching_list.values_list('section_id', flat=True).distinct()

    if request.method == 'POST':
        if request.POST.get('delete'):
            return HttpResponseRedirect('/survey/del/%s/' % object_id)
        else:
            form = SurveyForm(request.POST, request.user, instance=survey)
            if form.is_valid():
                form.save()
                request.session["msg"] = _('"%(name)s" is updated.')\
                    % {'name': request.POST['name']}
                return HttpResponseRedirect('/survey/')

    template = 'frontend/survey/survey_change.html'

    data = {
        'survey_obj_id': object_id,
        'section_list': section_list,
        'branching_list': branching_list,
        'branching_section_list': branching_section_list,
        'module': current_view(request),
        'action': 'update',
        'form': form,
        'msg': request.session.get('msg'),
        'SECTION_TYPE': SECTION_TYPE,
    }
    request.session['msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #25
0
def contact_add(request):
    """Add a new contact into the selected phonebook for the logged in user

    **Attributes**:

        * ``form`` - ContactForm
        * ``template`` - frontend/contact/change.html

    **Logic Description**:

        * Before adding a contact, check dialer setting limit if applicable
          to the user.
        * Add new contact belonging to the logged in user
          via ContactForm & get redirected to the contact list
    """
    # Check dialer setting limit
    if request.user and request.method == 'POST':
        # check  Max Number of subscriber per campaign
        if check_dialer_setting(request, check_for="contact"):
            request.session['msg'] = \
                _("you have too many contacts per campaign. you are allowed a maximum of %(limit)s") % \
                {'limit': dialer_setting_limit(request, limit_for="contact")}

            # contact limit reached
            frontend_send_notification(request, NOTIFICATION_NAME.contact_limit_reached)
            return HttpResponseRedirect("/contact/")

    form = ContactForm(request.user)
    error_msg = False
    # Add contact
    if request.method == 'POST':
        form = ContactForm(request.user, request.POST)
        if form.is_valid():
            form.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['contact']}
            return HttpResponseRedirect('/contact/')
        else:
            if len(request.POST['contact']) > 0:
                error_msg = _('"%(name)s" cannot be added.') %\
                    {'name': request.POST['contact']}

    phonebook_count = Phonebook.objects.filter(user=request.user).count()
    template = 'frontend/contact/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'error_msg': error_msg,
        'phonebook_count': phonebook_count,
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #26
0
def survey_change(request, object_id):
    """Update/Delete Survey for the logged in user

    **Attributes**:

        * ``object_id`` - Selected survey object
        * ``form`` - SurveyForm
        * ``template`` - frontend/survey/change.html

    **Logic Description**:

        * Update/delete selected survey from the survey list
          via SurveyForm & get redirected to survey list
    """
    survey = get_object_or_404(
        Survey_template, pk=object_id, user=request.user)

    section_list = Section_template.objects.filter(survey=survey).order_by('order')
    form = SurveyForm(instance=survey)
    branching_list = Branching_template.objects\
        .filter(section__survey=survey).order_by('id')

    branching_section_list = \
        branching_list.values_list('section_id', flat=True).distinct()

    if request.method == 'POST':
        if request.POST.get('delete'):
            survey_del(request, object_id)
            return HttpResponseRedirect('/survey/')
        else:
            form = SurveyForm(request.POST, request.user, instance=survey)
            if form.is_valid():
                form.save()
                request.session["msg"] = _('"%(name)s" is updated.')\
                    % {'name': request.POST['name']}
                return HttpResponseRedirect('/survey/')

    template = 'frontend/survey/survey_change.html'

    data = {
        'survey_obj_id': object_id,
        'section_list': section_list,
        'branching_list': branching_list,
        'branching_section_list': branching_section_list,
        'module': current_view(request),
        'action': 'update',
        'form': form,
        'msg': request.session.get('msg'),
        'SECTION_TYPE': SECTION_TYPE,
    }
    request.session['msg'] = ''
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #27
0
def section_branch_add(request):
    """Add branching on section for the logged in user

    **Attributes**:

        * ``form`` - BranchingForm
        * ``template`` - frontend/survey/section_branch_change.html

    **Logic Description**:

        * Add branching record via BranchingForm
    """
    request.session['msg'] = ''
    form = ''
    section_survey_id = ''
    section_type = ''
    section_id = ''
    if request.GET.get('section_id'):
        section_id = request.GET.get('section_id')
        section = Section_template.objects.get(pk=int(section_id))
        section_survey_id = section.survey_id
        section_type = section.type
        form = BranchingForm(section.survey_id,
                             section.id,
                             initial={'section': section_id})
        if request.method == 'POST':
            form = BranchingForm(section.survey_id, section.id, request.POST)
            if form.is_valid():
                form.save()
                request.session["msg"] = _('branching is added successfully.')
                return HttpResponseRedirect('/survey/%s/#row%s' %
                                            (section.survey_id, section_id))
            else:
                form._errors["keys"] = _("duplicate record keys with goto.")
                request.session["err_msg"] = True

    template = 'frontend/survey/section_branch_change.html'
    data = {
        'form': form,
        'survey_id': section_survey_id,
        'section_type': section_type,
        'section_id': section_id,
        'module': current_view(request),
        'err_msg': request.session.get('err_msg'),
        'action': 'add',
        'SECTION_TYPE': SECTION_TYPE,
    }
    request.session["msg"] = ''
    request.session['err_msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #28
0
def login_view(request):
    """Check User credentials

    **Attributes**:

        * ``form`` - LoginForm
        * ``template`` - frontend/index.html

    **Logic Description**:

        * Submitted user credentials need to be checked. If it is not valid
          then the system will redirect to the login page.
        * If submitted user credentials are valid then system will redirect to
          the dashboard.
    """
    template = 'frontend/index.html'
    errorlogin = ''

    if request.method == 'POST':
        loginform = LoginForm(request.POST)
        if loginform.is_valid():
            cd = loginform.cleaned_data
            user = authenticate(username=cd['user'],
                                password=cd['password'])
            if user is not None:
                if user.is_active:
                    login(request, user)
                    request.session['has_notified'] = False
                    # Redirect to a success page (dashboard).
                    return HttpResponseRedirect('/dashboard/')
                else:
                    # Return a 'disabled account' error message
                    errorlogin = _('Disabled Account')
            else:
                # Return an 'invalid login' error message.
                errorlogin = _('Invalid Login.')
        else:
            # Return an 'Valid User Credentials' error message.
            errorlogin = _('Enter Valid User Credentials.')
    else:
        loginform = LoginForm()

    data = {
        'module': current_view(request),
        'loginform': loginform,
        'errorlogin': errorlogin,
        'news': get_news(news_url),
        'is_authenticated': request.user.is_authenticated(),
    }

    return render_to_response(template, data,
           context_instance=RequestContext(request))
Beispiel #29
0
def login_view(request):
    """Check User credentials

    **Attributes**:

        * ``form`` - LoginForm
        * ``template`` - frontend/index.html

    **Logic Description**:

        * Submitted user credentials need to be checked. If it is not valid
          then the system will redirect to the login page.
        * If submitted user credentials are valid then system will redirect to
          the dashboard.
    """
    template = 'frontend/index.html'
    errorlogin = ''

    if request.method == 'POST':
        loginform = LoginForm(request.POST)
        if loginform.is_valid():
            cd = loginform.cleaned_data
            user = authenticate(username=cd['user'], password=cd['password'])
            if user is not None:
                if user.is_active:
                    login(request, user)
                    request.session['has_notified'] = False
                    # Redirect to a success page (dashboard).
                    return HttpResponseRedirect('/dashboard/')
                else:
                    # Return a 'disabled account' error message
                    errorlogin = _('Disabled Account')
            else:
                # Return an 'invalid login' error message.
                errorlogin = _('Invalid Login.')
        else:
            # Return an 'Valid User Credentials' error message.
            errorlogin = _('Enter Valid User Credentials.')
    else:
        loginform = LoginForm()

    data = {
        'module': current_view(request),
        'loginform': loginform,
        'errorlogin': errorlogin,
        'news': get_news(news_url),
        'is_authenticated': request.user.is_authenticated(),
    }

    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #30
0
def section_branch_add(request):
    """Add branching on section for the logged in user

    **Attributes**:

        * ``form`` - BranchingForm
        * ``template`` - frontend/survey/section_branch_change.html

    **Logic Description**:

        * Add branching record via BranchingForm
    """
    request.session['msg'] = ''
    form = ''
    section_survey_id = ''
    section_type = ''
    section_id = ''
    if request.GET.get('section_id'):
        section_id = request.GET.get('section_id')
        section = Section_template.objects.get(pk=int(section_id))
        section_survey_id = section.survey_id
        section_type = section.type
        form = BranchingForm(
            section.survey_id, section.id, initial={'section': section_id})
        if request.method == 'POST':
            form = BranchingForm(
                section.survey_id, section.id, request.POST)
            if form.is_valid():
                form.save()
                request.session["msg"] = _('branching is added successfully.')
                return HttpResponseRedirect('/survey/%s/#row%s'
                                        % (section.survey_id, section_id))
            else:
                form._errors["keys"] = _("duplicate record keys with goto.")
                request.session["err_msg"] = True

    template = 'frontend/survey/section_branch_change.html'
    data = {
        'form': form,
        'survey_id': section_survey_id,
        'section_type': section_type,
        'section_id': section_id,
        'module': current_view(request),
        'err_msg': request.session.get('err_msg'),
        'action': 'add',
        'SECTION_TYPE': SECTION_TYPE,
    }
    request.session["msg"] = ''
    request.session['err_msg'] = ''
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #31
0
def survey_question_change(request, id):
    """Update survey question for the logged in user

    **Attributes**:

        * ``form`` - SurveyQuestionForm
        * ``template`` - frontend/survey/survey_question_change.html

    **Logic Description**:

        *
    """
    survey_que = SurveyQuestion.objects.get(pk=int(id))
    form = SurveyQuestionForm(request.user, instance=survey_que)
    request.session['err_msg'] = ''
    if request.GET.get('delete'):
        # perform delete
        surveyapp_id = survey_que.surveyapp_id
        survey_response_list = SurveyResponse.objects\
                                .filter(surveyquestion=survey_que)
        for survey_resp in survey_response_list:
            survey_resp.delete()

        survey_que.delete()
        return HttpResponseRedirect('/survey/%s/' % (surveyapp_id))

    if request.method == 'POST':
        form = SurveyQuestionForm(request.user,
                                  request.POST,
                                  instance=survey_que)
        if form.is_valid():
            obj = form.save()
            return HttpResponseRedirect('/survey/%s/#row%s'  \
                % (obj.surveyapp_id, obj.id))
        else:
            request.session["err_msg"] = _('Question is not added.')

    template = 'frontend/survey/survey_question_change.html'
    data = {
        'form': form,
        'surveyapp_id': survey_que.surveyapp_id,
        'survey_question_id': id,
        'module': current_view(request),
        'err_msg': request.session.get('err_msg'),
        'action': 'update',
    }
    request.session['err_msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #32
0
def login_view(request):
    """Check User credentials

    **Attributes**:

        * ``form`` - LoginForm
        * ``template`` - frontend/index.html

    **Logic Description**:

        * Submitted user credentials need to be checked. If it is not valid
          then the system will redirect to the login page.
        * If submitted user credentials are valid then system will redirect to
          the dashboard.
    """
    template = "frontend/index.html"
    errorlogin = ""

    if request.method == "POST":
        loginform = LoginForm(request.POST)
        if loginform.is_valid():
            cd = loginform.cleaned_data
            user = authenticate(username=cd["user"], password=cd["password"])
            if user is not None:
                if user.is_active:
                    login(request, user)
                    request.session["has_notified"] = False
                    # Redirect to a success page (dashboard).
                    return HttpResponseRedirect("/dashboard/")
                else:
                    # Return a 'disabled account' error message
                    errorlogin = _("Disabled Account")
            else:
                # Return an 'invalid login' error message.
                errorlogin = _("Invalid Login.")
        else:
            # Return an 'Valid User Credentials' error message.
            errorlogin = _("Enter Valid User Credentials.")
    else:
        loginform = LoginForm()

    data = {
        "module": current_view(request),
        "loginform": loginform,
        "errorlogin": errorlogin,
        "news": get_news(news_url),
        "is_authenticated": request.user.is_authenticated(),
    }

    return render_to_response(template, data, context_instance=RequestContext(request))
Beispiel #33
0
def survey_question_change(request, id):
    """Update survey question for the logged in user

    **Attributes**:

        * ``form`` - SurveyQuestionForm
        * ``template`` - frontend/survey/survey_question_change.html

    **Logic Description**:

        *
    """
    survey_que = SurveyQuestion.objects.get(pk=int(id))
    form = SurveyQuestionForm(request.user, instance=survey_que)
    request.session['err_msg'] = ''
    if request.GET.get('delete'):
        # perform delete
        surveyapp_id = survey_que.surveyapp_id
        survey_response_list = SurveyResponse.objects\
                                .filter(surveyquestion=survey_que)
        for survey_resp in survey_response_list:
            survey_resp.delete()

        survey_que.delete()
        return HttpResponseRedirect('/survey/%s/' % (surveyapp_id))

    if request.method == 'POST':
        form = SurveyQuestionForm(request.user,
                                  request.POST,
                                  instance=survey_que)
        if form.is_valid():
            obj = form.save()
            return HttpResponseRedirect('/survey/%s/#row%s'  \
                % (obj.surveyapp_id, obj.id))
        else:
            request.session["err_msg"] = _('Question is not added.')

    template = 'frontend/survey/survey_question_change.html'
    data = {
        'form': form,
        'surveyapp_id': survey_que.surveyapp_id,
        'survey_question_id': id,
        'module': current_view(request),
        'err_msg': request.session.get('err_msg'),
        'action': 'update',
        }
    request.session['err_msg'] = ''
    return render_to_response(template, data,
        context_instance=RequestContext(request))
def user_notification(request):
    """User Detail change on Customer UI

    **Attributes**:

        * ``form`` - UserChangeDetailForm, UserChangeDetailExtendForm,
                        PasswordChangeForm, CheckPhoneNumberForm
        * ``template`` - 'frontend/registration/user_detail_change.html'

    **Logic Description**:

        * User is able to change his/her detail.
    """

    notification_data = get_notification_list_for_view(request)
    PAGE_SIZE = notification_data['pagination_data']['PAGE_SIZE']
    sort_order = notification_data['pagination_data']['sort_order']
    col_name_with_order = notification_data['pagination_data'][
        'col_name_with_order']
    user_notification = notification_data['user_notification']

    msg_note = ''
    if request.GET.get('msg_note') == 'true':
        msg_note = request.session['msg_note']

    # Mark all notification as read
    if request.GET.get('notification') == 'mark_read_all':
        notification_list = notification.Notice.objects\
            .filter(unseen=1, recipient=request.user)
        notification_list.update(unseen=0)
        msg_note = _('All notifications are marked as read.')

    template = 'frontend/common_notification/user_notification.html'
    data = {
        'module': current_view(request),
        'msg_note': msg_note,
        'notice_count': notice_count(request),
        'user_notification': user_notification,
        'col_name_with_order': col_name_with_order,
        'PAGE_SIZE': PAGE_SIZE,
        'NOTICE_COLUMN_NAME': NOTICE_COLUMN_NAME,
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #35
0
def campaign_list(request):
    """List all campaigns for the logged in user

    **Attributes**:

        * ``template`` - frontend/campaign/list.html

    **Logic Description**:

        * List all campaigns belonging to the logged in user
    """
    request.session['pagination_path'] = request.META[
        'PATH_INFO'] + '?' + request.META['QUERY_STRING']
    sort_col_field_list = [
        'id', 'name', 'startingdate', 'status', 'totalcontact'
    ]
    default_sort_field = 'id'
    pagination_data =\
        get_pagination_vars(request, sort_col_field_list, default_sort_field)

    PAGE_SIZE = pagination_data['PAGE_SIZE']
    sort_order = pagination_data['sort_order']

    campaign_list = Campaign.objects.filter(
        user=request.user).order_by(sort_order)

    template = 'frontend/campaign/list.html'
    data = {
        'module': current_view(request),
        'campaign_list': campaign_list,
        'total_campaign': campaign_list.count(),
        'PAGE_SIZE': PAGE_SIZE,
        'CAMPAIGN_COLUMN_NAME': CAMPAIGN_COLUMN_NAME,
        'col_name_with_order': pagination_data['col_name_with_order'],
        'msg': request.session.get('msg'),
        'error_msg': request.session.get('error_msg'),
        'info_msg': request.session.get('info_msg'),
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    request.session['msg'] = ''
    request.session['error_msg'] = ''
    request.session['info_msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
def user_notification(request):
    """User Detail change on Customer UI

    **Attributes**:

        * ``form`` - UserChangeDetailForm, UserChangeDetailExtendForm,
                        PasswordChangeForm, CheckPhoneNumberForm
        * ``template`` - 'frontend/registration/user_detail_change.html'

    **Logic Description**:

        * User is able to change his/her detail.
    """

    notification_data = get_notification_list_for_view(request)
    PAGE_SIZE = notification_data['pagination_data']['PAGE_SIZE']
    sort_order = notification_data['pagination_data']['sort_order']
    col_name_with_order = notification_data['pagination_data']['col_name_with_order']
    user_notification = notification_data['user_notification']

    msg_note = ''
    if request.GET.get('msg_note') == 'true':
        msg_note = request.session['msg_note']

    # Mark all notification as read
    if request.GET.get('notification') == 'mark_read_all':
        notification_list = notification.Notice.objects\
            .filter(unseen=1, recipient=request.user)
        notification_list.update(unseen=0)
        msg_note = _('All notifications are marked as read.')


    template = 'frontend/common_notification/user_notification.html'
    data = {
        'module': current_view(request),
        'msg_note': msg_note,
        'notice_count': notice_count(request),
        'user_notification': user_notification,
        'col_name_with_order': col_name_with_order,
        'PAGE_SIZE': PAGE_SIZE,
        'NOTICE_COLUMN_NAME': NOTICE_COLUMN_NAME,
    }
    return render_to_response(template, data,
        context_instance=RequestContext(request))
Beispiel #37
0
def dnc_contact_change(request, object_id):
    """Update/Delete dnc contact for the logged in user

    **Attributes**:

        * ``object_id`` - Selected dnc contact object
        * ``form`` - DNCContactForm
        * ``template`` - frontend/dnc_contact/change.html

    **Logic Description**:

        * Update/delete selected dnc contact from the dnc contact list
          via DNCContactForm & get redirected to the dnc contact list
    """
    dnc_contact = get_object_or_404(DNCContact,
                                    pk=object_id,
                                    dnc__user=request.user)

    form = DNCContactForm(request.user, instance=dnc_contact)
    if request.method == 'POST':
        # Delete dnc contact
        if request.POST.get('delete'):
            return HttpResponseRedirect('/dnc_contact/del/%s/' % object_id)
        else:
            # Update dnc contact
            form = DNCContactForm(request.user,
                                  request.POST,
                                  instance=dnc_contact)
            if form.is_valid():
                form.save()
                request.session["msg"] = _('"%(name)s" is updated.') \
                    % {'name': request.POST['phone_number']}
                return HttpResponseRedirect('/dnc_contact/')

    template = 'frontend/dnc_contact/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'update',
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #38
0
def index(request):
    """Index view of the Customer Interface

    **Attributes**:

        * ``form`` - LoginForm
        * ``template`` - frontend/index.html
    """
    template = 'frontend/index.html'
    errorlogin = ''
    data = {
        'module': current_view(request),
        'user': request.user,
        'loginform': LoginForm(),
        'errorlogin': errorlogin,
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }

    return render_to_response(template, data,
           context_instance=RequestContext(request))
Beispiel #39
0
def survey_list(request):
    """SurveyApp list for the logged in user

    **Attributes**:

        * ``template`` - frontend/survey/list.html

    **Logic Description**:

        * List all surveys which belong to the logged in user.
    """
    template = 'frontend/survey/survey_list.html'
    data = {
        'module': current_view(request),
        'msg': request.session.get('msg'),
        'notice_count': notice_count(request),
    }
    request.session['msg'] = ''
    return render_to_response(template, data,
           context_instance=RequestContext(request))
Beispiel #40
0
def contact_change(request, object_id):
    """Update/Delete contact for the logged in user

    **Attributes**:

        * ``object_id`` - Selected contact object
        * ``form`` - ContactForm
        * ``template`` - frontend/contact/change.html

    **Logic Description**:

        * Update/delete selected contact from the contact list
          via ContactForm & get redirected to the contact list
    """
    contact = get_object_or_404(
        Contact, pk=object_id, phonebook__user=request.user)

    form = ContactForm(request.user, instance=contact)
    if request.method == 'POST':
        # Delete contact
        if request.POST.get('delete'):
            contact_del(request, object_id)
            return HttpResponseRedirect('/contact/')
        else:
            # Update contact
            form = ContactForm(request.user, request.POST, instance=contact)
            if form.is_valid():
                form.save()
                request.session["msg"] = _('"%(name)s" is updated.') \
                    % {'name': request.POST['contact']}
                return HttpResponseRedirect('/contact/')

    template = 'frontend/contact/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'update',
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #41
0
def section_script_change(request, id):
    """Update survey question for the logged in user

    **Attributes**:

        * ``form`` - ScriptForm
        * ``template`` - frontend/survey/section_script_change.html

    **Logic Description**:

        *
    """
    section = get_object_or_404(Section_template,
                                pk=int(id),
                                survey__user=request.user)

    form = ScriptForm(instance=section)
    if request.method == 'POST':
        form = ScriptForm(request.POST, instance=section)
        if form.is_valid():
            obj = form.save()
            request.session["msg"] = _('script updated.')
            return HttpResponseRedirect('/survey/%s/#row%s' %
                                        (obj.survey_id, obj.id))
        else:
            request.session["err_msg"] = True

    template = 'frontend/survey/section_script_change.html'
    data = {
        'form': form,
        'survey_id': section.survey_id,
        'section_id': section.id,
        'module': current_view(request),
        'err_msg': request.session.get('err_msg'),
        'action': 'update',
    }
    request.session["msg"] = ''
    request.session['err_msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #42
0
def audio_change(request, object_id):
    """Update Audio for the logged in user

    **Attributes**:

        * ``form`` - SurveyCustomerAudioFileForm
        * ``template`` - frontend/audio/audio_change.html

    **Logic Description**:

        * Update audio which is belong to the logged in user
          via the CustomerAudioFileForm & get redirected to the audio list
    """
    obj = AudioFile.objects.get(pk=object_id)
    form = SurveyCustomerAudioFileForm(instance=obj)

    if request.GET.get('delete'):
        # perform delete
        if obj.audio_file:
            if os.path.exists(obj.audio_file.path):
                os.remove(obj.audio_file.path)
        obj.delete()
        return HttpResponseRedirect('/audio/')

    if request.method == 'POST':
        form = SurveyCustomerAudioFileForm(request.POST,
                                           request.FILES,
                                           instance=obj)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/audio/')

    template = 'frontend/audio/audio_change.html'
    data = {
       'form': form,
       'module': current_view(request),
       'action': 'update',
       'AUDIO_DEBUG': settings.AUDIO_DEBUG,
    }
    return render_to_response(template, data,
           context_instance=RequestContext(request))
Beispiel #43
0
def voiceapp_list(request):
    """Voce App list for logged in user

    **Attributes**:

        * ``template`` - frontend/voiceapp/list.html

    **Logic Description**:

        * List all voice app which are belong to logged in user
    """
    template = 'frontend/voiceapp/list.html'
    data = {
        'module': current_view(request),
        'msg': request.session.get('msg'),
        'notice_count': notice_count(request),
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    request.session['msg'] = ''
    return render_to_response(template, data,
           context_instance=RequestContext(request))
Beispiel #44
0
def survey_list(request):
    """SurveyApp list for the logged in user

    **Attributes**:

        * ``template`` - frontend/survey/list.html

    **Logic Description**:

        * List all surveys which belong to the logged in user.
    """
    template = 'frontend/survey/survey_list.html'
    data = {
        'module': current_view(request),
        'msg': request.session.get('msg'),
        'notice_count': notice_count(request),
    }
    request.session['msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #45
0
def index(request):
    """Index view of the Customer Interface

    **Attributes**:

        * ``form`` - LoginForm
        * ``template`` - frontend/index.html
    """
    template = 'frontend/index.html'
    errorlogin = ''
    data = {
        'module': current_view(request),
        'user': request.user,
        'loginform': LoginForm(),
        'errorlogin': errorlogin,
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }

    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #46
0
def dnc_contact_add(request):
    """Add a new dnc contact into the selected dnc for the logged in user

    **Attributes**:

        * ``form`` - DNCContactForm
        * ``template`` - frontend/dnc_contact/change.html

    **Logic Description**:

        * Add new dnc contact belonging to the logged in user
          via DNCContactForm & get redirected to the contact list
    """
    form = DNCContactForm(request.user)
    error_msg = False
    # Add dnc contact
    if request.method == 'POST':
        form = DNCContactForm(request.user, request.POST)
        if form.is_valid():
            form.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['phone_number']}
            return HttpResponseRedirect('/dnc_contact/')
        else:
            if len(request.POST['phone_number']) > 0:
                error_msg = _('"%(name)s" cannot be added.') %\
                    {'name': request.POST['phone_number']}

    #FIXME: dnc_count not used
    dnc_count = DNC.objects.filter(user=request.user).count()
    template = 'frontend/dnc_contact/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'error_msg': error_msg,
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #47
0
def alarm_list(request):
    """Alarm list for the logged in user

    **Attributes**:

        * ``template`` - frontend/cdr_alert/alert_list.html

    **Logic Description**:

        * List all alarms which belong to the logged in user.
    """
    sort_col_field_list = ['id', 'name', 'period', 'type', 'alert_condition',
                           'alert_value', 'status', 'updated_date']
    default_sort_field = 'id'
    pagination_data =\
        get_pagination_vars(request, sort_col_field_list, default_sort_field)

    PAGE_SIZE = pagination_data['PAGE_SIZE']
    sort_order = pagination_data['sort_order']

    alarm_list = Alarm.objects\
        .filter(user=request.user).order_by(sort_order)

    template_name = 'frontend/cdr_alert/alarm/list.html'

    PAGE_SIZE = settings.PAGE_SIZE
    template_data = {
        'module': current_view(request),
        'msg': request.session.get('msg'),
        'rows': alarm_list,
        'total_count': alarm_list.count(),
        'PAGE_SIZE': PAGE_SIZE,
        'ALARM_COLUMN_NAME': ALARM_COLUMN_NAME,
        'col_name_with_order': pagination_data['col_name_with_order'],
        'notice_count': notice_count(request),
    }
    request.session['msg'] = ''
    request.session['error_msg'] = ''
    return render_to_response(template_name, template_data,
        context_instance=RequestContext(request))
Beispiel #48
0
def campaign_list(request):
    """List all campaigns for the logged in user

    **Attributes**:

        * ``template`` - frontend/campaign/list.html

    **Logic Description**:

        * List all campaigns belonging to the logged in user
    """
    request.session['pagination_path'] = request.META['PATH_INFO'] + '?' + request.META['QUERY_STRING']
    sort_col_field_list = ['id', 'name', 'startingdate', 'status', 'totalcontact']
    default_sort_field = 'id'
    pagination_data =\
        get_pagination_vars(request, sort_col_field_list, default_sort_field)

    PAGE_SIZE = pagination_data['PAGE_SIZE']
    sort_order = pagination_data['sort_order']

    campaign_list = Campaign.objects.filter(user=request.user).order_by(sort_order)

    template = 'frontend/campaign/list.html'
    data = {
        'module': current_view(request),
        'campaign_list': campaign_list,
        'total_campaign': campaign_list.count(),
        'PAGE_SIZE': PAGE_SIZE,
        'CAMPAIGN_COLUMN_NAME': CAMPAIGN_COLUMN_NAME,
        'col_name_with_order': pagination_data['col_name_with_order'],
        'msg': request.session.get('msg'),
        'error_msg': request.session.get('error_msg'),
        'info_msg': request.session.get('info_msg'),
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    request.session['msg'] = ''
    request.session['error_msg'] = ''
    request.session['info_msg'] = ''
    return render_to_response(template, data,
                              context_instance=RequestContext(request))
Beispiel #49
0
def api_list_view(request):
    """
    Get List of API names & their links
    """
    exclude_file = ['__init__.py', 'urls.py', 'views.py']
    list_of_api = []
    os.chdir(settings.APPLICATION_DIR + "/api/api_playgrounds/")
    for files in os.listdir("."):
        if files.endswith(".py") and files.endswith(".py"):
            if str(files) not in exclude_file:
                api_arr = str(files).split('_playground.py')
                api_link = '/api-explorer/' + api_arr[0].replace("_", "-")
                list_of_api.append({'api_name': api_arr[0],
                                    'api_link': api_link})

    template = 'frontend/api/api_list.html'
    data = {
        'list_of_api': list_of_api,
        'module': current_view(request),
    }
    return render_to_response(template, data,
        context_instance=RequestContext(request))
Beispiel #50
0
def dnc_contact_add(request):
    """Add a new dnc contact into the selected dnc for the logged in user

    **Attributes**:

        * ``form`` - DNCContactForm
        * ``template`` - frontend/dnc_contact/change.html

    **Logic Description**:

        * Add new dnc contact belonging to the logged in user
          via DNCContactForm & get redirected to the contact list
    """
    form = DNCContactForm(request.user)
    error_msg = False
    # Add dnc contact
    if request.method == 'POST':
        form = DNCContactForm(request.user, request.POST)
        if form.is_valid():
            form.save()
            request.session["msg"] = _('"%(name)s" added.') %\
                {'name': request.POST['phone_number']}
            return HttpResponseRedirect('/dnc_contact/')
        else:
            if len(request.POST['phone_number']) > 0:
                error_msg = _('"%(name)s" cannot be added.') %\
                    {'name': request.POST['phone_number']}

    template = 'frontend/dnc_contact/change.html'
    data = {
        'module': current_view(request),
        'form': form,
        'action': 'add',
        'error_msg': error_msg,
        'dialer_setting_msg': user_dialer_setting_msg(request.user),
    }
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #51
0
def audio_list(request):
    """AudioFile list for the logged in user

    **Attributes**:

        * ``template`` - frontend/audio/audio_list.html

    **Logic Description**:

        * List all audios which belong to the logged in user.
    """
    sort_col_field_list = ['id', 'name', 'updated_date']
    default_sort_field = 'id'
    pagination_data =\
        get_pagination_vars(request, sort_col_field_list, default_sort_field)

    PAGE_SIZE = pagination_data['PAGE_SIZE']
    sort_order = pagination_data['sort_order']
    audio_list = AudioFile.objects.filter(
        user=request.user).order_by(sort_order)
    domain = Site.objects.get_current().domain

    template = 'frontend/audio/audio_list.html'
    data = {
        'module': current_view(request),
        'audio_list': audio_list,
        'total_audio': audio_list.count(),
        'PAGE_SIZE': PAGE_SIZE,
        'AUDIO_COLUMN_NAME': AUDIO_COLUMN_NAME,
        'col_name_with_order': pagination_data['col_name_with_order'],
        'domain': domain,
        'msg': request.session.get('msg'),
        'AUDIO_DEBUG': settings.AUDIO_DEBUG,
    }
    request.session['msg'] = ''
    request.session['error_msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #52
0
def survey_list(request):
    """SurveyApp list for the logged in user

    **Attributes**:

        * ``template`` - frontend/survey/list.html

    **Logic Description**:

        * List all surveys which belong to the logged in user.
    """
    sort_col_field_list = ['id', 'name', 'updated_date']
    default_sort_field = 'id'
    pagination_data =\
        get_pagination_vars(request, sort_col_field_list, default_sort_field)

    #PAGE_NUMBER = pagination_data['PAGE_NUMBER']
    PAGE_SIZE = pagination_data['PAGE_SIZE']
    sort_order = pagination_data['sort_order']

    survey_list = Survey_template.objects\
        .values('id', 'name', 'description', 'updated_date')\
        .filter(user=request.user).order_by(sort_order)

    template = 'frontend/survey/survey_list.html'
    data = {
        'module': current_view(request),
        'survey_list': survey_list,
        'total_survey': survey_list.count(),
        'PAGE_SIZE': PAGE_SIZE,
        'SURVEY_COLUMN_NAME': SURVEY_COLUMN_NAME,
        'col_name_with_order': pagination_data['col_name_with_order'],
        'msg': request.session.get('msg'),
    }
    request.session['msg'] = ''
    request.session['error_msg'] = ''
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))
Beispiel #53
0
def section_script_change(request, id):
    """Update survey question for the logged in user

    **Attributes**:

        * ``form`` - ScriptForm
        * ``template`` - frontend/survey/section_script_change.html

    **Logic Description**:

        *
    """
    section = get_object_or_404(
        Section_template, pk=int(id), survey__user=request.user)

    form = ScriptForm(instance=section)
    if request.method == 'POST':
        form = ScriptForm(request.POST, instance=section)
        if form.is_valid():
            obj = form.save()
            request.session["msg"] = _('script updated.')
            return HttpResponseRedirect('/survey/%s/#row%s'
                % (obj.survey_id, obj.id))
        else:
            request.session["err_msg"] = True

    template = 'frontend/survey/section_script_change.html'
    data = {
        'form': form,
        'survey_id': section.survey_id,
        'section_id': section.id,
        'module': current_view(request),
        'err_msg': request.session.get('err_msg'),
        'action': 'update',
    }
    request.session["msg"] = ''
    request.session['err_msg'] = ''
    return render_to_response(template, data,
        context_instance=RequestContext(request))
Beispiel #54
0
def audio_list(request):
    """AudioFile list for the logged in user

    **Attributes**:

        * ``template`` - frontend/audio/audio_list.html

    **Logic Description**:

        * List all audios which belong to the logged in user.
    """
    template = 'frontend/audio/audio_list.html'
    data = {
        'module': current_view(request),
        'msg': request.session.get('msg'),
        'notice_count': notice_count(request),
        'audio_list': audio_list,
        'AUDIO_DEBUG': settings.AUDIO_DEBUG,
    }
    request.session['msg'] = ''
    return render_to_response(template, data,
           context_instance=RequestContext(request))