Beispiel #1
0
    def test_addsave(self):
        self.factory.user = LucteriosUser.objects.get(username='******')

        self.assertFalse(exists(get_user_path('documents', 'document_1')))
        file_path = join(dirname(__file__), 'static', 'lucterios.documents', 'images', 'documentFind.png')

        docs = Document.objects.all()
        self.assertEqual(len(docs), 0)

        self.factory.xfer = DocumentAddModify()
        with open(file_path, 'rb') as file_to_load:
            self.calljson('/lucterios.documents/documentAddModify', {"current_folder": "2", 'SAVE': 'YES', 'description': 'new doc',
                                                                     'filename_FILENAME': 'doc.png', 'filename': file_to_load}, False)
        self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentAddModify')
        self.assertEqual(len(self.json_context), 3)

        docs = Document.objects.all()
        self.assertEqual(len(docs), 1)
        self.assertEqual(docs[0].folder.id, 2)
        self.assertEqual(docs[0].name, 'doc.png')
        self.assertEqual(docs[0].description, "new doc")
        self.assertEqual(docs[0].creator.username, "empty")
        self.assertEqual(docs[0].modifier.username, "empty")
        self.assertEqual(docs[0].date_creation, docs[0].date_modification)
        self.assertTrue(exists(get_user_path('documents', 'document_1')))
Beispiel #2
0
    def test_logo(self):
        self.assertFalse(exists(get_user_path('contacts', 'Image_1.jpg')))
        logo_path = join(dirname(__file__), "static", 'lucterios.contacts',
                         'images', 'ourDetails.png')
        logo_stream = "image.jpg;" + \
            readimage_to_base64(logo_path, False).decode("utf-8")

        self.factory.xfer = CurrentStructureAddModify()
        self.calljson('/lucterios.contacts/currentStructureAddModify', {
            "SAVE": 'YES',
            "uploadlogo": logo_stream
        }, False)
        self.assert_observer('core.acknowledge', 'lucterios.contacts',
                             'currentStructureAddModify')
        self.assertTrue(exists(get_user_path('contacts', 'Image_1.jpg')))

        self.factory.xfer = CurrentStructure()
        self.calljson('/lucterios.contacts/currentStructure', {}, False)
        self.assert_observer('core.custom', 'lucterios.contacts',
                             'currentStructure')
        self.assert_json_equal('IMAGE', 'logoimg',
                               "data:image/*;base64,/9j/4AAQSkZJRg", True)

        self.factory.xfer = CurrentStructurePrint()
        self.calljson('/lucterios.contacts/currentStructurePrint', {}, False)
        self.assert_observer('core.print', 'lucterios.contacts',
                             'currentStructurePrint')
        pdf_value = b64decode(
            six.text_type(self.response_json['print']['content']))
        self.assertEqual(pdf_value[:4], "%PDF".encode('ascii', 'ignore'))
Beispiel #3
0
    def test_addsave(self):
        self.factory.user = LucteriosUser.objects.get(username='******')

        self.assertFalse(exists(get_user_path('documents', 'document_1')))
        file_path = join(dirname(__file__), 'static', 'lucterios.documents',
                         'images', 'documentFind.png')

        docs = Document.objects.all()
        self.assertEqual(len(docs), 0)

        self.factory.xfer = DocumentAddModify()
        with open(file_path, 'rb') as file_to_load:
            self.call(
                '/lucterios.documents/documentAddModify', {
                    "current_folder": "2",
                    'SAVE': 'YES',
                    'description': 'new doc',
                    'filename_FILENAME': 'doc.png',
                    'filename': file_to_load
                }, False)
        self.assert_observer('core.acknowledge', 'lucterios.documents',
                             'documentAddModify')
        self.assert_count_equal('CONTEXT/PARAM', 3)

        docs = Document.objects.all()
        self.assertEqual(len(docs), 1)
        self.assertEqual(docs[0].folder.id, 2)
        self.assertEqual(docs[0].name, 'doc.png')
        self.assertEqual(docs[0].description, "new doc")
        self.assertEqual(docs[0].creator.username, "empty")
        self.assertEqual(docs[0].modifier.username, "empty")
        self.assertEqual(docs[0].date_creation, docs[0].date_modification)
        self.assertTrue(exists(get_user_path('documents', 'document_1')))
Beispiel #4
0
def create_doc(user, with_folder=True):
    root_path = join(dirname(__file__), 'static', 'lucterios.documents', 'images')
    with ZipFile(get_user_path('documents', 'document_1'), 'w') as zip_ref:
        zip_ref.write(join(root_path, 'documentFind.png'), arcname='doc1.png')
    with ZipFile(get_user_path('documents', 'document_2'), 'w') as zip_ref:
        zip_ref.write(join(root_path, 'documentConf.png'), arcname='doc2.png')
    with ZipFile(get_user_path('documents', 'document_3'), 'w') as zip_ref:
        zip_ref.write(join(root_path, 'document.png'), arcname='doc3.png')
    current_date = timezone.now()
    new_doc1 = Document.objects.create(name='doc1.png', description="doc 1", creator=user,
                                       date_creation=current_date, date_modification=current_date)
    if with_folder:
        new_doc1.folder = Folder.objects.get(id=2)
    new_doc1.save()
    new_doc2 = Document.objects.create(name='doc2.png', description="doc 2", creator=user,
                                       date_creation=current_date, date_modification=current_date)
    if with_folder:
        new_doc2.folder = Folder.objects.get(id=1)
    new_doc2.save()
    new_doc3 = Document.objects.create(name='doc3.png', description="doc 3", creator=user,
                                       date_creation=current_date, date_modification=current_date)
    if with_folder:
        new_doc3.folder = Folder.objects.get(id=4)
    new_doc3.save()
    return current_date
Beispiel #5
0
    def test_delete(self):
        current_date = create_doc(self.factory.user)

        self.factory.xfer = ContainerList()
        self.calljson('/lucterios.documents/containerList', {"current_folder": "2"}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'containerList')
        self.assert_count_equal('container', 2)
        self.assert_json_equal('', "container/@0/id", "3")
        self.assert_json_equal('', "container/@0/name", "truc3")
        self.assert_json_equal('', "container/@0/description", "----")
        self.assert_json_equal('', "container/@0/date_modif", None)
        self.assert_json_equal('', "container/@0/modif", None)
        self.assert_json_equal('', "container/@1/id", "5")
        self.assert_json_equal('', "container/@1/name", "doc1.png")
        self.assert_json_equal('', "container/@1/description", "doc 1")
        self.assert_json_equal('', "container/@1/date_modif", current_date.isoformat()[:23], True)
        self.assert_json_equal('', "container/@1/modif", None)

        self.assertTrue(exists(get_user_path('documents', 'container_5')))

        self.factory.xfer = ContainerDel()
        self.calljson('/lucterios.documents/containerDel', {"container": "5", "CONFIRME": 'YES'}, False)
        self.assert_observer('core.acknowledge', 'lucterios.documents', 'containerDel')

        self.factory.xfer = ContainerList()
        self.calljson('/lucterios.documents/containerList', {"current_folder": "2"}, False)
        self.assert_count_equal('container', 1)
        self.assert_json_equal('', "container/@0/id", "3")
        self.assertFalse(exists(get_user_path('documents', 'container_5')))
Beispiel #6
0
 def create_doc(self):
     file_path = join(dirname(__file__), 'static', 'lucterios.documents',
                      'images', 'documentFind.png')
     copyfile(file_path, get_user_path('documents', 'document_1'))
     copyfile(file_path, get_user_path('documents', 'document_2'))
     copyfile(file_path, get_user_path('documents', 'document_3'))
     current_date = timezone.now()
     new_doc1 = Document.objects.create(name='doc1.png',
                                        description="doc 1",
                                        creator=self.factory.user,
                                        date_creation=current_date,
                                        date_modification=current_date)
     new_doc1.folder = Folder.objects.get(id=2)
     new_doc1.save()
     new_doc2 = Document.objects.create(name='doc2.png',
                                        description="doc 2",
                                        creator=self.factory.user,
                                        date_creation=current_date,
                                        date_modification=current_date)
     new_doc2.folder = Folder.objects.get(id=1)
     new_doc2.save()
     new_doc3 = Document.objects.create(name='doc3.png',
                                        description="doc 3",
                                        creator=self.factory.user,
                                        date_creation=current_date,
                                        date_modification=current_date)
     new_doc3.folder = Folder.objects.get(id=4)
     new_doc3.save()
     return current_date
 def test_export(self):
     self.assertFalse(
         exists(get_user_path('accounting', 'fiscalyear_export_1.xml')))
     self.factory.xfer = FiscalYearExport()
     self.call('/diacamma.accounting/fiscalYearExport', {}, False)
     self.assert_observer('core.custom', 'diacamma.accounting', 'fiscalYearExport')
     self.assertTrue(exists(get_user_path('accounting', 'fiscalyear_export_1.xml')))
Beispiel #8
0
 def show(self, xfer):
     LucteriosEditor.show(self, xfer)
     obj_addr = xfer.get_components('address')
     xfer.tab = obj_addr.tab
     new_col = obj_addr.col
     xfer.move(obj_addr.tab, 1, 0)
     img_path = get_user_path(
         "contacts", "Image_%s.jpg" % self.item.abstractcontact_ptr_id)
     img = XferCompImage('logoimg')
     if exists(img_path):
         img.type = 'jpg'
         img.set_value(readimage_to_base64(img_path))
     else:
         img.set_value(
             get_icon_path("lucterios.contacts/images/NoImage.png"))
     img.set_location(new_col, obj_addr.row, 1, 6)
     xfer.add_component(img)
     if WrapAction.is_permission(xfer.request,
                                 'contacts.add_abstractcontact'):
         if (len(self.item.__class__.get_select_contact_type(False)) > 0):
             btn = XferCompButton('btn_promote')
             btn.set_location(new_col + 1, xfer.get_max_row() + 1, 4)
             btn.set_action(xfer.request,
                            ObjectPromote.get_action(
                                _('Promote'), "images/config.png"),
                            modal=FORMTYPE_MODAL,
                            close=CLOSE_YES,
                            params={
                                'modelname': xfer.model.get_long_name(),
                                'field_id': xfer.field_id
                            })
             xfer.add_component(btn)
     signal_and_lock.Signal.call_signal("show_contact", self.item, xfer)
Beispiel #9
0
    def add_legalentity(self, legal_entity):
        self.new_tab(_("Legal entity"))
        self.item = legal_entity
        fields = LegalEntity.get_show_fields()
        self.fill_from_model(1, 1, True, fields[_('001@Identity')])
        self.get_components('name').colspan = 2
        self.get_components('structure_type').colspan = 2
        img_path = get_user_path(
            "contacts", "Image_%s.jpg" % legal_entity.abstractcontact_ptr_id)
        img = XferCompImage('logoimg')
        if exists(img_path):
            img.type = 'jpg'
            img.set_value(readimage_to_base64(img_path))
        else:
            img.set_value(
                get_icon_path("lucterios.contacts/images/NoImage.png"))
        img.set_location(0, 2, 1, 6)
        self.add_component(img)

        btn = XferCompButton('btn_edit')
        btn.set_is_mini(True)
        btn.set_location(4, 1, 1, 2)
        btn.set_action(self.request, CurrentLegalEntityModify.get_action(
            _('Edit'), "images/edit.png"), modal=FORMTYPE_MODAL, close=CLOSE_NO, params={'legal_entity': legal_entity.id})
        self.add_component(btn)
Beispiel #10
0
    def add_legalentity(self, legal_entity):
        self.new_tab(_("Legal entity"))
        self.item = legal_entity
        fields = LegalEntity.get_show_fields()
        self.fill_from_model(1, 1, True, fields[_('001@Identity')])
        self.get_components('name').colspan = 2
        self.get_components('structure_type').colspan = 2
        img_path = get_user_path(
            "contacts", "Image_%s.jpg" % legal_entity.abstractcontact_ptr_id)
        img = XferCompImage('logoimg')
        if exists(img_path):
            img.type = 'jpg'
            img.set_value(readimage_to_base64(img_path))
        else:
            img.set_value(
                get_icon_path("lucterios.contacts/images/NoImage.png"))
        img.set_location(0, 2, 1, 6)
        self.add_component(img)

        btn = XferCompButton('btn_edit')
        btn.set_is_mini(True)
        btn.set_location(4, 1, 1, 2)
        btn.set_action(self.request,
                       CurrentLegalEntityModify.get_action(
                           _('Edit'), "images/edit.png"),
                       modal=FORMTYPE_MODAL,
                       close=CLOSE_NO,
                       params={'legal_entity': legal_entity.id})
        self.add_component(btn)
Beispiel #11
0
 def image(self):
     img_path = get_user_path("contacts", "Image_%s.jpg" % self.abstractcontact_ptr_id)
     if exists(img_path):
         img = readimage_to_base64(img_path)
     else:
         img = readimage_to_base64(join(dirname(__file__), "static", 'lucterios.contacts', "images", "NoImage.png"))
     return img.decode('ascii')
Beispiel #12
0
 def saving(self, xfer):
     if 'filename' in xfer.request.FILES.keys():
         tmp_file = xfer.request.FILES['filename']
         file_path = get_user_path("documents", "document_%s" % six.text_type(
             self.item.id))
         with open(file_path, "wb") as file_tmp:
             file_tmp.write(tmp_file.read())  # write the tmp file
Beispiel #13
0
 def _docs(self):
     doc_mdl = apps.get_model("documents", "Document")
     doc_mdl.objects.all().delete()
     self.doc_list = {}
     cur = self.old_db.open()
     cur.execute(
         "SELECT id, nom, description, categorie, modificateur, createur, dateModification, dateCreation FROM org_lucterios_documents_document"
     )
     for docid, doc_name, doc_description, doc_folder, doc_modifier, doc_creator, doc_datemod, doc_datecreat in cur.fetchall(
     ):
         self.print_debug("=> Document %s", (doc_name, ))
         self.doc_list[docid] = doc_mdl.objects.create(
             name=doc_name,
             description=doc_description,
             date_modification=doc_datemod,
             date_creation=doc_datecreat)
         if doc_folder is not None:
             self.doc_list[docid].folder = self.folder_list[doc_folder]
         self.doc_list[docid].modifier = self.user_list[doc_modifier]
         self.doc_list[docid].creator = self.user_list[doc_creator]
         self.doc_list[docid].save()
         new_filename = get_user_path(
             "documents",
             "document_%s" % six.text_type(self.doc_list[docid].id))
         old_filename = join(self.old_db.tmp_path, "usr",
                             "org_lucterios_documents",
                             "document%d" % docid)
         if isfile(old_filename):
             copyfile(old_filename, new_filename)
         else:
             self.print_info("*** Document '%s' not found ***", doc_name)
             mknod(new_filename)
Beispiel #14
0
 def saving(self, xfer):
     if 'filename' in xfer.request.FILES.keys():
         tmp_file = xfer.request.FILES['filename']
         file_path = get_user_path(
             "documents", "document_%s" % six.text_type(self.item.id))
         with open(file_path, "wb") as file_tmp:
             file_tmp.write(tmp_file.read())  # write the tmp file
Beispiel #15
0
 def import_files(self, dir_to_import, viewers, modifiers, user):
     for filename in listdir(dir_to_import):
         complet_path = join(dir_to_import, filename)
         if isfile(complet_path):
             new_doc = Document(name=filename,
                                description=filename,
                                folder_id=self.id)
             if user.is_authenticated():
                 new_doc.creator = LucteriosUser.objects.get(pk=user.id)
                 new_doc.modifier = new_doc.creator
             new_doc.date_modification = timezone.now()
             new_doc.date_creation = new_doc.date_modification
             new_doc.save()
             file_path = get_user_path(
                 "documents", "document_%s" % six.text_type(new_doc.id))
             with ZipFile(file_path, 'w') as zip_ref:
                 zip_ref.write(complet_path, arcname=filename)
         elif isdir(complet_path):
             new_folder = Folder.objects.create(name=filename,
                                                description=filename,
                                                parent_id=self.id)
             new_folder.viewer = viewers
             new_folder.modifier = modifiers
             new_folder.save()
             new_folder.import_files(complet_path, viewers, modifiers, user)
Beispiel #16
0
 def delete(self):
     file_paths = []
     docs = self.document_set.all()
     for doc in docs:
         file_paths.append(
             get_user_path("documents",
                           "document_%s" % six.text_type(doc.id)))
     LucteriosModel.delete(self)
     for file_path in file_paths:
         if isfile(file_path):
             unlink(file_path)
Beispiel #17
0
 def content(self):
     from _io import BytesIO
     file_path = get_user_path("documents",
                               "document_%s" % six.text_type(self.id))
     if isfile(file_path):
         with ZipFile(file_path, 'r') as zip_ref:
             file_list = zip_ref.namelist()
             if len(file_list) > 0:
                 doc_file = zip_ref.open(file_list[0])
                 return BytesIO(doc_file.read())
     return BytesIO(b'')
Beispiel #18
0
def create_doc(user, with_folder=True):
    root_path = join(dirname(__file__), 'static', 'lucterios.documents',
                     'images')
    current_date = timezone.now()
    new_doc1 = DocumentContainer.objects.create(name='doc1.png',
                                                description="doc 1",
                                                creator=user,
                                                date_creation=current_date,
                                                date_modification=current_date)
    if with_folder:
        new_doc1.parent = FolderContainer.objects.get(id=2)
    new_doc1.save()
    with ZipFile(get_user_path('documents', 'container_%d' % new_doc1.id),
                 'w') as zip_ref:
        zip_ref.write(join(root_path, 'documentFind.png'), arcname='doc1.png')

    new_doc2 = DocumentContainer.objects.create(name='doc2.png',
                                                description="doc 2",
                                                creator=user,
                                                date_creation=current_date,
                                                date_modification=current_date)
    if with_folder:
        new_doc2.parent = FolderContainer.objects.get(id=1)
    new_doc2.save()
    with ZipFile(get_user_path('documents', 'container_%d' % new_doc2.id),
                 'w') as zip_ref:
        zip_ref.write(join(root_path, 'documentConf.png'), arcname='doc2.png')

    new_doc3 = DocumentContainer.objects.create(name='doc3.png',
                                                description="doc 3",
                                                creator=user,
                                                date_creation=current_date,
                                                date_modification=current_date)
    if with_folder:
        new_doc3.parent = FolderContainer.objects.get(id=4)
    new_doc3.save()
    with ZipFile(get_user_path('documents', 'container_%d' % new_doc3.id),
                 'w') as zip_ref:
        zip_ref.write(join(root_path, 'document.png'), arcname='doc3.png')
    return current_date
Beispiel #19
0
 def saving(self, xfer):
     uploadlogo = xfer.getparam('uploadlogo')
     if uploadlogo is not None:
         tmp_file = save_from_base64(uploadlogo)
         with open(tmp_file, "rb") as image_tmp:
             image = open_image_resize(image_tmp, 100, 100)
             image = image.convert("RGB")
             img_path = get_user_path("contacts", "Image_%s.jpg" % self.item.abstractcontact_ptr_id)
             with open(img_path, "wb") as image_file:
                 image.save(image_file, 'JPEG', quality=90)
         unlink(tmp_file)
     LucteriosEditor.saving(self, xfer)
     self.item.set_custom_values(xfer.params)
Beispiel #20
0
    def test_delete(self):
        current_date = create_doc(self.factory.user)

        self.factory.xfer = DocumentList()
        self.calljson('/lucterios.documents/documentList', {"current_folder": "2"}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'documentList')
        self.assert_count_equal('document', 1)
        self.assert_json_equal('', "document/@0/id", "1")
        self.assert_json_equal('', "document/@0/name", "doc1.png")
        self.assert_json_equal('', "document/@0/description", "doc 1")
        self.assert_json_equal('', "document/@0/date_modification", six.text_type(current_date))
        self.assert_json_equal('', "document/@0/modifier", "---")
        self.assertTrue(exists(get_user_path('documents', 'document_1')))

        self.factory.xfer = DocumentDel()
        self.calljson('/lucterios.documents/documentDel', {"document": "1", "CONFIRME": 'YES'}, False)
        self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentDel')

        self.factory.xfer = DocumentList()
        self.calljson('/lucterios.documents/documentList', {"current_folder": "2"}, False)
        self.assert_count_equal('document', 0)
        self.assertFalse(exists(get_user_path('documents', 'document_1')))
Beispiel #21
0
    def test_logo(self):
        self.assertFalse(exists(get_user_path('contacts', 'Image_1.jpg')))
        logo_path = join(dirname(__file__), "static", 'lucterios.contacts', 'images', 'ourDetails.png')
        logo_stream = "image.jpg;" + \
            readimage_to_base64(logo_path, False).decode("utf-8")

        self.factory.xfer = CurrentStructureAddModify()
        self.calljson('/lucterios.contacts/currentStructureAddModify',
                      {"SAVE": 'YES', "uploadlogo": logo_stream}, False)
        self.assert_observer('core.acknowledge', 'lucterios.contacts', 'currentStructureAddModify')
        self.assertTrue(exists(get_user_path('contacts', 'Image_1.jpg')))

        self.factory.xfer = CurrentStructure()
        self.calljson('/lucterios.contacts/currentStructure', {}, False)
        self.assert_observer('core.custom', 'lucterios.contacts', 'currentStructure')
        self.assert_json_equal('IMAGE', 'logoimg', "data:image/*;base64,/9j/4AAQSkZJRg", True)

        self.factory.xfer = CurrentStructurePrint()
        self.calljson('/lucterios.contacts/currentStructurePrint', {}, False)
        self.assert_observer('core.print', 'lucterios.contacts', 'currentStructurePrint')
        pdf_value = b64decode(six.text_type(self.response_json['print']['content']))
        self.assertEqual(pdf_value[:4], "%PDF".encode('ascii', 'ignore'))
Beispiel #22
0
 def saving(self, xfer):
     uploadlogo = xfer.getparam('uploadlogo')
     if uploadlogo is not None:
         tmp_file = save_from_base64(uploadlogo)
         with open(tmp_file, "rb") as image_tmp:
             image = open_image_resize(image_tmp, 100, 100)
             image = image.convert("RGB")
             img_path = get_user_path("contacts", "Image_%s.jpg" % self.item.abstractcontact_ptr_id)
             with open(img_path, "wb") as image_file:
                 image.save(image_file, 'JPEG', quality=90)
         unlink(tmp_file)
     LucteriosEditor.saving(self, xfer)
     self.item.set_custom_values(xfer.params)
Beispiel #23
0
    def test_delete(self):
        current_date = self.create_doc()

        self.factory.xfer = DocumentList()
        self.call('/lucterios.documents/documentList', {"current_folder": "2"},
                  False)
        self.assert_observer('core.custom', 'lucterios.documents',
                             'documentList', 1)
        self.assert_count_equal('COMPONENTS/GRID[@name="document"]/RECORD', 1)
        self.assert_xml_equal(
            'COMPONENTS/GRID[@name="document"]/RECORD[@id="1"]/VALUE[@name="name"]',
            "doc1.png")
        self.assert_xml_equal(
            'COMPONENTS/GRID[@name="document"]/RECORD[@id="1"]/VALUE[@name="description"]',
            "doc 1")
        self.assert_xml_equal(
            'COMPONENTS/GRID[@name="document"]/RECORD[@id="1"]/VALUE[@name="date_modification"]',
            formats.date_format(current_date, "DATETIME_FORMAT"))
        self.assert_xml_equal(
            'COMPONENTS/GRID[@name="document"]/RECORD[@id="1"]/VALUE[@name="modifier"]',
            "---")
        self.assertTrue(exists(get_user_path('documents', 'document_1')))

        self.factory.xfer = DocumentDel()
        self.call('/lucterios.documents/documentDel', {
            "document": "1",
            "CONFIRME": 'YES'
        }, False)
        self.assert_observer('core.acknowledge', 'lucterios.documents',
                             'documentDel')

        self.factory.xfer = DocumentList()
        self.call('/lucterios.documents/documentList', {"current_folder": "2"},
                  False)
        self.assert_count_equal('COMPONENTS/GRID[@name="document"]/RECORD', 0)
        self.assertFalse(exists(get_user_path('documents', 'document_1')))
Beispiel #24
0
 def extract_files(self, dir_to_extract):
     for doc in Document.objects.filter(folder_id=self.id):
         file_path = get_user_path("documents",
                                   "document_%s" % six.text_type(doc.id))
         if isfile(file_path):
             try:
                 with ZipFile(file_path, 'r') as zip_ref:
                     zip_ref.extractall(dir_to_extract)
             except BadZipFile:
                 pass
     for folder in Folder.objects.filter(parent_id=self.id):
         new_dir_to_extract = join(dir_to_extract, folder.name)
         if not isdir(new_dir_to_extract):
             makedirs(new_dir_to_extract)
         folder.extract_files(new_dir_to_extract)
Beispiel #25
0
 def assign_abstact_values(new_legalentity, abstract_id):
     from lucterios.framework.filetools import get_user_path
     super_cur = self.old_db.open(True)
     super_cur.execute(
         "SELECT * FROM org_lucterios_contacts_personneAbstraite WHERE id=%d" % abstract_id)
     abst_val = super_cur.fetchone()
     for old_field, new_field in [['adresse', 'address'], ['codePostal', 'postal_code'],
                                  ['ville', 'city'], [
                                      'pays', 'country'], ['fixe', 'tel1'],
                                  ['portable', 'tel2'], ['mail', 'email'], ['commentaire', 'comment']]:
         if abst_val[old_field] is not None:
             setattr(new_legalentity, new_field, abst_val[old_field])
     old_image_filename = join(
         self.old_db.tmp_path, "usr", "org_lucterios_contacts", "Image_%d.jpg" % abstract_id)
     if isfile(old_image_filename):
         new_image_filename = get_user_path(
             "contacts", "Image_%s.jpg" % new_legalentity.abstractcontact_ptr_id)
         copyfile(old_image_filename, new_image_filename)
Beispiel #26
0
 def show(self, xfer):
     LucteriosEditor.show(self, xfer)
     obj_addr = xfer.get_components('address')
     xfer.tab = obj_addr.tab
     new_col = obj_addr.col
     xfer.move(obj_addr.tab, 1, 0)
     img_path = get_user_path("contacts", "Image_%s.jpg" % self.item.abstractcontact_ptr_id)
     img = XferCompImage('logoimg')
     if exists(img_path):
         img.type = 'jpg'
         img.set_value(readimage_to_base64(img_path))
     else:
         img.set_value(get_icon_path("lucterios.contacts/images/NoImage.png"))
     img.set_location(new_col, obj_addr.row, 1, 6)
     xfer.add_component(img)
     if WrapAction.is_permission(xfer.request, 'contacts.add_abstractcontact'):
         if (len(self.item.__class__.get_select_contact_type(False)) > 0):
             btn = XferCompButton('btn_promote')
             btn.set_location(new_col + 1, xfer.get_max_row() + 1, 4)
             btn.set_action(xfer.request, ObjectPromote.get_action(_('Promote'), "images/config.png"), modal=FORMTYPE_MODAL,
                            close=CLOSE_YES, params={'modelname': xfer.model.get_long_name(), 'field_id': xfer.field_id})
             xfer.add_component(btn)
     signal_and_lock.Signal.call_signal("show_contact", self.item, xfer)
Beispiel #27
0
 def current_image(self, icon_path=None):
     img_path = get_user_path("contacts", "Image_1.jpg")
     if exists(img_path):
         return readimage_to_base64(img_path)
     else:
         return self.icon_path(icon_path)
Beispiel #28
0
    def test_create_pad(self):
        port = find_free_port()
        settings.ETHERPAD = {'url': 'http://localhost:%d' % port, 'apikey': 'abc123'}

        self.factory.xfer = ContainerList()
        self.calljson('/lucterios.documents/containerList', {}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'containerList')
        self.assert_count_equal('', 10)
        self.assert_count_equal('container', 2)
        self.assert_count_equal("#container/actions", 3)

        TestMoke.content_type = "application/json"
        httpd = TestHTTPServer(('localhost', port))
        httpd.start()
        try:
            TestMoke.initial(['{"code": 0, "message":"ok", "data": null}'])
            self.factory.xfer = ContainerList()
            self.calljson('/lucterios.documents/containerList', {}, False)
            self.assert_observer('core.custom', 'lucterios.documents', 'containerList')
            self.assert_count_equal('container', 2)
            self.assert_count_equal("#container/actions", 4)
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 1)
            self.assertEqual(TestMoke.requests[0], ('/api/1.2.13/checkToken', {'apikey': ['abc123']}))

            TestMoke.initial(['{"code": 0, "message":"ok", "data": null}'])
            self.factory.xfer = ContainerAddFile()
            self.calljson('/lucterios.documents/containerAddFile', {}, False)
            self.assert_observer('core.custom', 'lucterios.documents', 'containerAddFile')
            self.assert_count_equal('', 5)
            self.assert_select_equal('docext', {'txt': 'txt', 'html': 'html'})  # nb=2
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 1)
            self.assertEqual(TestMoke.requests[0], ('/api/1.2.13/checkToken', {'apikey': ['abc123']}))

            self.factory.xfer = ContainerAddFile()
            self.calljson('/lucterios.documents/containerAddFile', {'name': 'aa.bb.cc', 'docext': 'txt', 'description': 'blablabla', 'CONFIRME': 'YES'}, False)
            self.assert_observer('core.acknowledge', 'lucterios.documents', 'containerAddFile')
            self.assertEqual(self.response_json['action']['id'], "lucterios.documents/documentEditor")
            self.assertEqual(len(self.response_json['action']['params']), 1)
            self.assertEqual(self.response_json['action']['params']['document'], 5)

            TestMoke.initial(['{"code":4,"message":"no or wrong API Key","data":null}'])
            self.factory.xfer = ContainerList()
            self.calljson('/lucterios.documents/containerList', {}, False)
            self.assert_observer('core.custom', 'lucterios.documents', 'containerList')
            self.assert_count_equal('container', 3)
            self.assert_count_equal("#container/actions", 3)
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 1)
            self.assertEqual(TestMoke.requests[0], ('/api/1.2.13/checkToken', {'apikey': ['abc123']}))

            new_doc = DocumentContainer.objects.get(id=5)
            self.assertEqual(new_doc.parent_id, None)
            self.assertEqual(new_doc.name, 'aa.bb.txt')
            self.assertEqual(new_doc.description, "blablabla")
            self.assertTrue(exists(get_user_path('documents', 'container_5')))

            TestMoke.initial(['{"code": 0, "message":"ok", "data": null}',
                              '{"code": 0, "message":"ok", "data": null}'])
            editor = new_doc.get_doc_editors()
            editor.root_url = 'http://testserver'
            self.assertEqual(editor.docid, 'edb6edba72798a8d49e95bf2f107ea10-5')
            json_test = editor.load_export('txt').decode('utf-8')
            self.assertEqual(json_test, '{"code": 0, "message":"ok", "data": null}')
            self.assertEqual(json.loads(json_test), {'code': 0, 'message': "ok", 'data': None})
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 2)
            self.assertEqual(TestMoke.requests[0], ('/api/1.2.13/checkToken', {'apikey': ['abc123']}))
            self.assertEqual(TestMoke.requests[1], '/p/edb6edba72798a8d49e95bf2f107ea10-5/export/txt')

            TestMoke.initial(['{"code": 0, "message":"ok", "data": null}',
                              '{"code": 0, "message":"ok", "data": {"padIDs":[]}}',
                              '{"code": 0, "message":"ok", "data": null}'])
            self.factory.xfer = DocumentEditor()
            self.calljson('/lucterios.documents/documentEditor', {'document': 5}, False)
            self.assert_observer('core.custom', 'lucterios.documents', 'documentEditor')
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 3)
            self.assertEqual(TestMoke.requests[0], ('/api/1.2.13/checkToken', {'apikey': ['abc123']}))
            self.assertEqual(TestMoke.requests[1], ('/api/1.2.13/listAllPads', {'apikey': ['abc123']}))
            self.assertEqual(TestMoke.requests[2], ('/api/1.2.13/createPad', {'apikey': ['abc123'],
                                                                              'padName': ['aa.bb.txt'],
                                                                              'padID': ['edb6edba72798a8d49e95bf2f107ea10-5']}))

            TestMoke.initial(['{"code": 0, "message":"ok", "data": null}',
                              '{"code": 0, "message":"ok", "data": {"text":"blablabla"}}'])
            self.factory.xfer = DocumentEditor()
            self.calljson('/lucterios.documents/documentEditor', {'document': 5, 'SAVE': 'YES'}, False)
            self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentEditor')
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 2)
            self.assertEqual(TestMoke.requests[0], ('/api/1.2.13/checkToken', {'apikey': ['abc123']}))
            self.assertEqual(TestMoke.requests[1], ('/api/1.2.13/getText', {'apikey': ['abc123'],
                                                                            'padID': ['edb6edba72798a8d49e95bf2f107ea10-5']}))

            TestMoke.initial(['{"code": 0, "message":"ok", "data": null}',
                              '{"code": 0, "message":"ok", "data": {"padIDs":["edb6edba72798a8d49e95bf2f107ea10-5"]}}',
                              '{"code": 0, "message":"ok", "data": null}'])
            self.factory.xfer = DocumentEditor()
            self.calljson('/lucterios.documents/documentEditor', {'document': 5, 'CLOSE': 'YES'}, False)
            self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentEditor')
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 3)
            self.assertEqual(TestMoke.requests[0], ('/api/1.2.13/checkToken', {'apikey': ['abc123']}))
            self.assertEqual(TestMoke.requests[1], ('/api/1.2.13/listAllPads', {'apikey': ['abc123']}))
            self.assertEqual(TestMoke.requests[2], ('/api/1.2.13/deletePad', {'apikey': ['abc123'],
                                                                              'padID': ['edb6edba72798a8d49e95bf2f107ea10-5']}))
        finally:
            httpd.shutdown()
Beispiel #29
0
 def delete(self):
     file_path = get_user_path("documents",
                               "document_%s" % six.text_type(self.id))
     LucteriosModel.delete(self)
     if isfile(file_path):
         unlink(file_path)
Beispiel #30
0
    def test_create_calc(self):
        port = find_free_port()
        settings.ETHERCALC = {'url': 'http://localhost:%d' % port}

        self.factory.xfer = ContainerList()
        self.calljson('/lucterios.documents/containerList', {}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'containerList')
        self.assert_count_equal('', 10)
        self.assert_count_equal('container', 2)
        self.assert_count_equal("#container/actions", 3)

        TestMoke.content_type = "application/json"
        httpd = TestHTTPServer(('localhost', port))
        httpd.start()
        try:
            TestMoke.initial([''])
            self.factory.xfer = ContainerList()
            self.calljson('/lucterios.documents/containerList', {}, False)
            self.assert_observer('core.custom', 'lucterios.documents', 'containerList')
            self.assert_count_equal('container', 2)
            self.assert_count_equal("#container/actions", 4)
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 1)
            self.assertEqual(TestMoke.requests[0], '/')

            TestMoke.initial([''])
            self.factory.xfer = ContainerAddFile()
            self.calljson('/lucterios.documents/containerAddFile', {}, False)
            self.assert_observer('core.custom', 'lucterios.documents', 'containerAddFile')
            self.assert_count_equal('', 5)
            self.assert_select_equal('docext', {'csv': 'csv', 'xlsx': 'xlsx', 'ods': 'ods'})  # nb=3
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 1)
            self.assertEqual(TestMoke.requests[0], '/')

            self.factory.xfer = ContainerAddFile()
            self.calljson('/lucterios.documents/containerAddFile', {'name': 'aa.bb.cc', 'docext': 'csv', 'description': 'blablabla', 'CONFIRME': 'YES'}, False)
            self.assert_observer('core.acknowledge', 'lucterios.documents', 'containerAddFile')
            self.assertEqual(self.response_json['action']['id'], "lucterios.documents/documentEditor")
            self.assertEqual(len(self.response_json['action']['params']), 1)
            self.assertEqual(self.response_json['action']['params']['document'], 5)

            new_doc = DocumentContainer.objects.get(id=5)
            self.assertEqual(new_doc.parent_id, None)
            self.assertEqual(new_doc.name, 'aa.bb.csv')
            self.assertEqual(new_doc.description, "blablabla")
            self.assertTrue(exists(get_user_path('documents', 'container_5')))

            TestMoke.initial(['', 'false', ''])
            self.factory.xfer = DocumentEditor()
            self.calljson('/lucterios.documents/documentEditor', {'document': 5}, False)
            self.assert_observer('core.custom', 'lucterios.documents', 'documentEditor')
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 3)
            self.assertEqual(TestMoke.requests[0], '/')
            self.assertEqual(TestMoke.requests[1], '/_exists/edb6edba72798a8d49e95bf2f107ea10-5')
            self.assertEqual(TestMoke.requests[2], ('PUT', '/_/edb6edba72798a8d49e95bf2f107ea10-5', {}))

            TestMoke.initial(['', 'true', ''])
            self.factory.xfer = DocumentEditor()
            self.calljson('/lucterios.documents/documentEditor', {'document': 5, 'SAVE': 'YES'}, False)
            self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentEditor')
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 3)
            self.assertEqual(TestMoke.requests[0], '/')
            self.assertEqual(TestMoke.requests[1], '/_exists/edb6edba72798a8d49e95bf2f107ea10-5')
            self.assertEqual(TestMoke.requests[2], '/edb6edba72798a8d49e95bf2f107ea10-5.csv')

            TestMoke.initial(['', 'true', ''])
            self.factory.xfer = DocumentEditor()
            self.calljson('/lucterios.documents/documentEditor', {'document': 5, 'CLOSE': 'YES'}, False)
            self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentEditor')
            self.assertEqual(TestMoke.results, [])
            self.assertEqual(len(TestMoke.requests), 3)
            self.assertEqual(TestMoke.requests[0], '/')
            self.assertEqual(TestMoke.requests[1], '/_exists/edb6edba72798a8d49e95bf2f107ea10-5')
            self.assertEqual(TestMoke.requests[2], ('DELETE', '/_/edb6edba72798a8d49e95bf2f107ea10-5'))
        finally:
            httpd.shutdown()
Beispiel #31
0
 def file_path(self):
     return get_user_path("documents", "container_%s" % six.text_type(self.id))