GithubHelp home page GithubHelp logo

treolabs / treocore Goto Github PK

View Code? Open in Web Editor NEW
24.0 24.0 10.0 51.91 MB

Please use AtroCore instead of TreoCore!

Home Page: https://treolabs.com

License: GNU General Public License v3.0

PHP 34.36% Smarty 2.83% HTML 1.12% CSS 13.39% JavaScript 43.92% SCSS 4.37%

treocore's People

Contributors

alexplechko avatar ania-vol avatar arsen1715 avatar atrolex avatar best-play avatar kvasyliev avatar m-kokhanskyi avatar r-zablodskiy avatar r4dulf avatar rratsun avatar yunga91 avatar zsmarkiian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

treocore's Issues

Workflow changes

  1. Workflow should always be executing. Calling it in beforeSave method there is possibility to skip it (by options skipBeforeSave or skipAll).
  2. It's not right to use workflow before saving Entity. Some workflow Events should be executing after saving Entity, and guard-events should be executing before it. So before save should be run method can and after save should be run method apply.

New algorithm for upload files

Use the temporary folder to save new files
Update thumbnail builder (build from a tmp folder)
After saving the related entity move file into main storage.

Bug in checking version

function prepareVersion(string $version, bool $patch = false): ?string in installer.php fails for mysql version 8.0.17

Fixed by using isset instead of !empty

Authentication against API

Hi,

I don't have a lot of experience with authenticating against an API via curl, so I'm wondering if someone can point me in the right direction to get started.

I created a user 'dev', password '1234', with admin privileges.

Based on treolabs/treopim#349 I tried to connect using:

curl --header "Espo-Authorization: $(echo -n dev:1234|base64)" --get https://treopim.mydomain.com/api/v1/App/User

Nothing is returned. I am expecting a token.

How should I complete the authentication part?

Unable to import brand by brand name via Product API

According to the API documentation we should be able to import a product's brand by it's brand name:

image

We have tried doing this, and triple checking the Brand exists (by name) on our TreoPIM, but the resulting record still has an empty brand.

Is this a bug?

Confirmation pop-up when removing the language

When removing the language from Administration » Multi-Languages Settings, the pop-up with confirmation and the message that all data of the removed locale will be also removed, should be displayed.

If the locale is removed, so are all your data previously entered in the multi-language fields for this locale.
Wenn das Locale entfernt wird, werden auch alle seine Daten entfernt, die Sie vorher in die mehrsprachigen Felder für dieses Locale eingegeben haben.

Changing the email subject and the password page

  1. When configuring Outbound Emails and sending a test email, in the email subject “TreoCRM” is displayed instead of “TreoCore”
  2. When changing your password from the User page and choosing the checkbox “Send Email with Access Info to User”, in the email subject “EspoCRM” is displayed - instead of “TreoCore” https://screen.treotest.com/i.rybachok/2019-07-08_12-47-19.jpg
  3. When resetting the password, an email with a link is sent to the user. When following this link, a blank page is displayed instead of displaying the page with a pop-up for entering new password: https://screen.treotest.com/i.rybachok/2019-07-08_12-45-04.jpg / https://screen.treotest.com/i.rybachok/2019-08-15_09-43-29.jpg

Unable to update 'image' via Product API

Hi,

Should I be able to link a product to an image via the API? I was under the impression that every single CRUD function of TreoPIM is internally handled by the API.

I can GET https://treopim.mydomain.com/api/v1/Brand fine, so I know my basic API access is okay.
But if I try to update a product's image with:

PUT https://treopim.mydomain.com/api/v1/Product/5c7a7ce88ba535aab

with JSON paylod:

{
  "image": "5c7ac114a5529d14e"
}

I receive a 'HTTP/1.1 200 OK' but nothing changes in the DB table 'product_image_product'.

Am I doing it wrong, or how can I toubleshoot this?

Also, I just noticed, your API docs say the 'entityid' part of the API URL should be an integer, however the actual DB has the ID as a varchar field.

Add role inheritance

The ability to inherit the role by another role will make ACL more flexible.

  • Each role may inherit the rights from one or several other roles
  • All the rights assigned to such a role simply extend the rights of those roles that the role inherits

Unable to import Product Families

Hello I am trying to install a CSV into Product Families.

This is a pretty clean TreoPIM 3.7.4, having only installed it yesterday.

The only existing Product Family record is the default one.

I try a file containing the following:

pg3_id,pg3_description,nameFrFr,nameDeDe,nameItIt,pg2_id,attset_id,commodity_code,unspsc,owner_id
A000001,Axial Angular Contact,Axial Angular Contact,Axial Angular Contact,Axial Angular Contact,A000,,84821090,31171531,
A000002,Double Row Angular Contact,Double Row Angular Contact,Double Row Angular Contact,Double Row Angular Contact,A000,1059,84821090,31171531,

I configure the importer as following:

image

The importer completes without error. But also without any import/duplicates/updates.
No reason given why it did not work.

Is this importer broken?

Thank you.

Installation unclear

Installation of this project completely unclear.
Which Linux distribution recommended?
Any virtual images?

process-treopim - an unique id of process. You should use different process ID if you have few TreoPIM project in one server
Is it a number? Is it alphanumeric?

How to configure web-server?

.... only wasting time trying to install....

Installation

Installation still not clear.
Which Linux distribution?

Pl. give examples.
Pl. show step by step.

And/or kindly provide virtual image.

Pl. note that you may have a distribution, system configuration setting in which it may work right away. Not so for others.

Also - if needed - which mysql configuration is necessary? Where is location / configuration file for credentials / database.

The setting Calendar Entity List

In /#Admin/settings, the setting Calendar Entity List is displayed. It must be displayed, only when CRM module is installed. If CRM module is not installed, this setting should not be displayed.

Listerners for custom does not apply.

I created folder Listerners in custom/Espo/Custom.
And added class inherits from AbstractListeners, but it does not hook into any actions.

then I add code to parse custom Listeners folder in getClassesName funcion in (vendor/treolabs/treocore/app/Treo/Core/EventManager/Manager.php)

` // for core
$corePath = CORE_PATH . '/Treo/Listeners';
if (file_exists($corePath)) {
$this->parseDir('Treo', $corePath, $listeners);
}

        // for modules
        foreach ($this->container->get('moduleManager')->getModules() as $id => $module) {
            $module->loadListeners($listeners);
        }

        // for custom
        $customPath = 'custom/Espo/Custom/Listeners';
        if (file_exists($customPath)) {
            $this->parseDir('Espo\\Custom', $customPath, $listeners);
        }

`
It works but I'm not sure about the others effect will occur or not.

Displaying of changes in the field of the type “Currency” in the Stream

  1. Go to the page /#Admin/entityManager
  2. Create the field of the type “Currency” in the entity and select the checkbox “Audited”, then configure the displaying of this field in the Layout Manager
  3. Edit the created field of the type “Currency” in the entity and change only the currency.

Actual result: if you change only the currency in the field of the type “Currency”, the empty record is displayed in the Stream - https://screen.treotest.com/i.rybachok/2019-09-24_15-09-15.jpg

Expected result: if changing the currency in the field of the type “Currency”, all changes are recorded in Stream.

Feature request

Hi Is it possible to request a minor feature?

We are brand new with TreoPIM (currently using 3.7.4 without any extensions*), and hoping to have it replace our LAMP-based in-house MDM. What we are struggling with, is the data import feature.

Take 'product categories', for example.

It took me probably 3 hours of trial and error to get some data imported here into a single entity. Only by manually creating some records via the GUI, and observing the data validation/filtering TreoPIM does, and by logging into MariaDB's CLI and inspecting the actual 'category' table, did I find the clues.

What we would like to see added into TreoPIM's GUI import:

  • When you are mapping your source's fields to the target entity's, can you highlight which entity fields are compulsory/required?
  • Compulsory fields should always be added to the field-mapping list - so it's obvious straight away if you can't satisfy them from your data source.
  • 'ID': it looks like you don't want users to import their own 'ID's. We assumed this would be an INT field (based on experience with other MDM's and ecommerce platforms). After inspecting the DB, TreoPIM uses some type of 24 character hash. Can you make it more obvious from the importer GUI that this is a TreoPIM-defined field, so the user should only be including it in their data source if it's to update existing records?
  • Please make it so that a data source field can be mapped to multiple entity fields. In the case of 'product categories' (for instance), TreoPIM makes the name field of ALL enabled languages compulsory. Which means we can only import data if we have all languages translated (and thus a separate field for each language in our source (eg: nameFrFr, nameDeDe. etc).
    It would be good to either have TreoPIM not make alternate languages compulsory (and use a fallback system where the default/primary field is used in the absence of the required country's). If this is not possible, we think a quick fix would simply be to allow the user to configure their 'name' field (in their source data) to map to multiple target language fields. (we think it's best to have 'Italian' descriptions imported/displayed as 'English', than not imported/displayed at all).
  • DB Table.Field: 'category.code': It looks like we only finally got our 'category' data source to import, once we realized that the 'code' field value has to be lowercase. But the data importer never alerts you to this. It just silently fails. Is it possible TreoPIM can provide some (or any!) feedback on why data is not being imported? We assume it's failing some internal validation check, which can surely be reported back to the user?

Despite these suggestions, we really love what we've seen from TreoPIM so far, and are crossing our fingers tightly that this can be our organization's choice of PIM/MDM going forward.

Keep up the good work!

Kind regards

*We have ordered our first extension, just awaiting support to activate it

Team hierarchy

  • A single parent team can have multiple child teams
  • You can specify one or more parent teams for each team
  • All members of the parent teams are accessed as configured at the "Team" access level

The error is displayed in the logs

The error is displayed in the logs

[2019-08-09 08:02:12] Espo.WARNING: E_WARNING: file_get_contents(https://packagist.treopim.com/packages.json): failed to open stream: HTTP request failed!  {"code":2,"message":"file_get_contents(https://packagist.treopim.com/packages.json): failed to open stream: HTTP request failed! ","file":"/var/www/treopim-install/public_html/vendor/treolabs/treocore/app/Treo/Services/TreoStore.php","line":161,"context":{"http_response_header":["HTTP/1.1 200 OK","Date: Fri, 09 Aug 2019 08:01:09 GMT","Server: Apache/2.4.25 (Debian)","Connection: close","Content-Type: application/json"]}} []

Workflow init states

Add init states to the workflow configurations, it means that workflow entity can be created only with defined states.

Errors when opening the non-existent entity page

  1. Go to the http://treopim.zinit1.com/#Composer/list page
  2. Remove the PIM module
  3. After removing the module, open the Product page, insert /#Product in the url
    Current result: When you go to the non-existent entity page, there are errors in the console - https://screen.treotest.com/i.rybachok/2019-07-23_09-54-09.jpg
    Afrer refreshing the page, the 404 error is displayed, but errors in the console still remain - https://screen.treotest.com/i.rybachok/2019-07-23_09-58-41.jpg
    Expected result: If such entity doesn't exist in your system, the 404 error is displayed and there are no errors in the console.

api documentation - starting

Hello,
today I tried tropim api. Endpoint documentation looks awesome. However, I do miss a basic tutorial or a how to start. Could not find any information how to get a auth token. Basic Auth is working but I don't think its best practice.

api routes missing

Hello,
first of all, great work. Looks very promising.
I tried some endpoints that I couldn get to work for example

/Product/{product_id}/listImages

could find the route in application/Espo/Resources/routes.json
maybe the routes should be autogenerated by annotation/comments as the documentation

Auto-updating

Every second sunday at 00:00 the system should do auto-updating if that action is allowed by an admin user. That mechanism will helps keep the system actual.

Unable to import category with product

TreoPIM v3.7.4.

Trying to import/update a product's 'category' via the GUI importer.

We have tried including the category Code, the category Name and even the category ID in our products source file, and mapping it to 'category' in the TreoPIM field list... but nothing.

The import process completes and all fields are updated/created, except for the category field.

Just how do we import the category field?!

Unfilled fields notifications prior to the user login

  1. Go to the http://treopim.zinit1.com/# page
  2. Don't enter any data in the login pop-up, click the button Login - a notification about the required field is displayed - https://screen.treotest.com/i.rybachok/2019-05-15_08-34-16.jpg
  3. Click any field or empty space
    Current result: If there was a notification about unfilled fields befor the login, an error in console is displayed when user logs in - https://screen.treotest.com/i.rybachok/2019-05-15_08-35-12.jpg
    Expected result: There are no errors in the console when user logs in.

Anchor navigation in the Administration section

Unify anchor navigation for the Administration section so that a whole path includes the subsection name.
E.g: Administration > System > Settings
Administration > System > User Interface
Administration > Customization > Settings

Errors in Queue Manager

Errors in Queue Manager, if fields of the Array and Multi-Enum types are left empty (non-filled) in the import file
[2019-08-22 11:56:26] Espo.ERROR: QM failed: explode() expects parameter 2 to be string, array given #0 /var/www/treopim-install/public_html/vendor/treo-module/import/app/Services/ImportTypeSimple.php(265): explode(';', Array) #1 /var/ww w/treopim-install/public_html/vendor/treo-module/import/app/Services/ImportTypeSimple.php(66): Import\Services\ImportTypeSimple->prepareEntities(Object(Treo\Entities\Attachment), Array) #2 /var/www/treopim-install/public_html/vendor/treo labs/treocore/app/Treo/Core/QueueManager.php(259): Import\Services\ImportTypeSimple->run(Array) #3 /var/www/treopim-install/public_html/vendor/treolabs/treocore/app/Treo/Core/QueueManager.php(73): Treo\Core\QueueManager->runJob(0, '5d5e8 2e99ed92e6...') #4 /var/www/treopim-install/public_html/vendor/treolabs/treocore/app/Treo/Console/QueueManager.php(64): Treo\Core\QueueManager->run(0) #5 /var/www/treopim-install/public_html/vendor/treolabs/treocore/app/Treo/Core/Console Manager.php(73): Treo\Console\QueueManager->run(Array) #6 /var/www/treopim-install/public_html/vendor/treolabs/treocore/app/Treo/Core/Application.php(164): Treo\Core\ConsoleManager->run('qm 0 --run') #7 /var/www/treopim-install/public_ht ml/index.php(51): Treo\Core\Application->runConsole(Array) #8 {main} [] []

Entity creation windows/pop-ups title

Modify all entity creation windows/pop-ups titles in the following way:
<Entity> > create --> <Entity> > New (capitalize both words) - for windows
CREATE <ENTITY> --> <ENTITY>: NEW - for pop-ups

Changing field values. Creating product category and product attribute with channel scope

Actual result: 1. Error "400: No changes for updating" is displayed when user changed value from "None" to "0" in the fields of the Integer or Float type - https://screen.treotest.com/i.rybachok/2019-09-27_11-39-32.jpg
2. Error "400: Validation failed. 'id' is required" is displayed when user is creating a product category and product attribute with channel scope - https://screen.treotest.com/i.rybachok/2019-09-27_11-44-28.jpg
Expected result: 1. Value "0" is successfully saved in the fields of the Integer or Float type
2. Product category and product attribute are successfully created

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.