Ejemplo n.º 1
0
    def setUp(self):
        self.user = User.objects.get(username='******')
        self.dnc = DNC(name='test_dnc', user=self.user)
        self.dnc.save()

        self.assertTrue(self.dnc.__unicode__())
        self.dnc_contact = DNCContact(dnc=self.dnc, phone_number='123456')
        self.dnc_contact.save()

        self.assertTrue(self.dnc_contact.__unicode__())
Ejemplo n.º 2
0
class DNCModel(TestCase):
    """
    Test DNC model
    """

    fixtures = ['auth_user.json']

    def setUp(self):
        self.user = User.objects.get(username='******')
        self.dnc = DNC(
            name='test_dnc',
            user=self.user
        )
        self.dnc.save()

        self.assertTrue(self.dnc.__unicode__())
        self.dnc_contact = DNCContact(
            dnc=self.dnc,
            phone_number='123456'
        )
        self.dnc_contact.save()

        self.assertTrue(self.dnc_contact.__unicode__())

    def test_dnc_form(self):
        self.assertEqual(self.dnc.name, 'test_dnc')
        form = DNCForm({'name': 'sample_dnc'})
        obj = form.save(commit=False)
        obj.user = self.user
        obj.save()

        form = DNCForm(instance=self.dnc)
        self.assertTrue(isinstance(form.instance, DNC))

    def test_dnc_contact_form(self):
        self.assertEqual(self.dnc_contact.dnc, self.dnc)
        form = DNCContactForm(self.user)
        form.phone_number = '123456'
        obj = form.save(commit=False)
        obj.dnc = self.dnc
        obj.save()

        form = DNCContactForm(self.user, instance=self.dnc_contact)
        self.assertTrue(isinstance(form.instance, DNCContact))

    def test_name(self):
        self.assertEqual(self.dnc.name, "test_dnc")
        self.assertEqual(self.dnc_contact.phone_number, "123456")

    def teardown(self):
        self.dnc.delete()
        self.dnc_contact.delete()
Ejemplo n.º 3
0
class DNCModel(TestCase):
    """
    Test DNC model
    """

    fixtures = ['auth_user.json']

    def setUp(self):
        self.user = User.objects.get(username='******')
        self.dnc = DNC(
            name='test_dnc',
            user=self.user
        )
        self.dnc.save()

        self.assertTrue(self.dnc.__unicode__())
        self.dnc_contact = DNCContact(
            dnc=self.dnc,
            phone_number='123456'
        )
        self.dnc_contact.save()

        self.assertTrue(self.dnc_contact.__unicode__())

    def test_dnc_form(self):
        self.assertEqual(self.dnc.name, 'test_dnc')
        form = DNCListForm({'name': 'sample_dnc'})
        form.save(user=self.user)

        form = DNCListForm(instance=self.dnc)
        self.assertTrue(isinstance(form.instance, DNC))

    def test_dnc_contact_form(self):
        self.assertEqual(self.dnc_contact.dnc, self.dnc)
        form = DNCContactForm(self.user)
        form.phone_number = '123456'
        obj = form.save(commit=False)
        obj.dnc = self.dnc
        obj.save()

        form = DNCContactForm(self.user, instance=self.dnc_contact)
        self.assertTrue(isinstance(form.instance, DNCContact))

    def test_name(self):
        self.assertEqual(self.dnc.name, "test_dnc")
        self.assertEqual(self.dnc_contact.phone_number, "123456")

    def teardown(self):
        self.dnc.delete()
        self.dnc_contact.delete()
Ejemplo n.º 4
0
    def setUp(self):
        self.user = User.objects.get(username='******')
        self.dnc = DNC(
            name='test_dnc',
            user=self.user
        )
        self.dnc.save()

        self.assertTrue(self.dnc.__unicode__())
        self.dnc_contact = DNCContact(
            dnc=self.dnc,
            phone_number='123456'
        )
        self.dnc_contact.save()

        self.assertTrue(self.dnc_contact.__unicode__())
Ejemplo n.º 5
0
def dnc_contact_import(request):
    """Import CSV file of DNC Contacts for the logged in user

    **Attributes**:

        * ``form`` - DNCContact_fileImport
        * ``template`` - frontend/dnc/import_contact.html

    **Logic Description**:

        * Add new dnc contacts which will belong to the logged in user
          via csv file & get the result (upload success and failure
          statistics)

    **Important variable**:

        * total_rows - Total no. of records in the CSV file
        * retail_record_count - No. of records imported from the CSV file
    """
    form = DNCContact_fileImport(request.user)
    csv_data = ''
    msg = ''
    error_msg = ''
    success_import_list = []
    type_error_import_list = []
    contact_cnt = 0
    dup_contact_cnt = 0
    bulk_record = []
    if request.method == 'POST':
        form = DNCContact_fileImport(request.user, request.POST, request.FILES)
        if form.is_valid():
            # col_no - field name
            #  0     - contact
            # To count total rows of CSV file
            #Get DNC Obj
            dnc = get_object_or_404(DNC,
                                    pk=request.POST['dnc_list'],
                                    user=request.user)

            records = csv.reader(request.FILES['csv_file'])
            total_rows = len(list(records))
            BULK_SIZE = 1000
            csv_data = csv.reader(request.FILES['csv_file'])

            #Read each Row
            for row in csv_data:
                row = striplist(row)
                if not row or str(row[0]) == 0:
                    continue

                #Check field type
                try:
                    int(row[0])
                except ValueError:
                    error_msg = _("Some of the imported data were invalid!")
                    type_error_import_list.append(row)
                    continue

                bulk_record.append(
                    DNCContact(dnc_id=dnc.id, phone_number=row[0]))
                contact_cnt = contact_cnt + 1
                if contact_cnt < 100:
                    #We want to display only 100 lines of the success import
                    success_import_list.append(row)

                if contact_cnt % BULK_SIZE == 0:
                    #Bulk insert
                    DNCContact.objects.bulk_create(bulk_record)
                    bulk_record = []

            if bulk_record:
                #Remaining record
                DNCContact.objects.bulk_create(bulk_record)
                bulk_record = []

        #check if there is contact imported
        if contact_cnt > 0:
            msg = _('%(contact_cnt)s dnc contact(s) are uploaded successfully out of %(total_rows)s row(s) !!') \
                % {'contact_cnt': contact_cnt,
                   'total_rows': total_rows}

        if dup_contact_cnt > 0:
            error_msg = _('Duplicate dnc contact(s) %(dup_contact_cnt)s are not inserted!!') \
                % {'dup_contact_cnt': dup_contact_cnt}

    data = RequestContext(
        request, {
            'form': form,
            'msg': msg,
            'error_msg': error_msg,
            'success_import_list': success_import_list,
            'type_error_import_list': type_error_import_list,
            'module': current_view(request),
            'dialer_setting_msg': user_dialer_setting_msg(request.user),
        })
    template = 'frontend/dnc_contact/import_dnc_contact.html'
    return render_to_response(template,
                              data,
                              context_instance=RequestContext(request))