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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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 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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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 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))
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))
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))
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))
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))
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))