cortezaproject / corteza-webapp-compose

https://cortezaproject.org/
Apache License 2.0
96 stars 65 forks source link

Offering different views for the same Entry #220

Closed PaulMcF1987 closed 2 years ago

PaulMcF1987 commented 3 years ago

I feel as though different views could be a handy feature. For example, currently there is one set up for entering and viewing information within a Module using the Record Block, each record is displayed in the Record List selecting one then takes you to the aforementioned Record block.

As it stands, I have different record Lists under different tabs for different departments, each of these record lists show different information, relevant to the particular department, but when the record is viewed, regardless of the list, it takes us to the same record block information.

I was wondering if it was possible to have a setup where it would allow us to display only the information needed for that certain department, so essentially, the full record is condensed into only what is needed for that particular department but shown in the form of a Record Block which would also give the person viewing the ability to update or make ammendments to the information that they were viewing.

For example.... I run a transport company and have used low code to set up a job management system where I enter the jobs carried out, the customers that each job relates to and the vehicles required etc...

Ideally, there would be a MASTER Record block where all the details of the job are entered and are viewable The ability to then create a SUB record block from this for display/edit purposes of the accounts department, for example, who do not need to know all of the job details and when viewing the block, can see at a glance all the information that is needed without the other not so important information cluttering up the view.

I hope this makes sense to the person reading

tjerman commented 3 years ago

@PaulMcF1987 currently, the closest you can get is by creating multiple record blocks on the same record page where each block contains information relevant to a single department.

As far as different views go... we are planning on doing some restructuring on how data is stored, handled and accessed. Different views might be included then or in the near future. I don't have an exact timeline for this, but I'm guessing it will be done in 2021.6 or 2021.9 -- don't quote me on this.

@lenny-horstink perhaps you could give some better advice in regards to page block structuring and such?

lennyhorstink commented 3 years ago

When you describe a MASTER record and a SUB record you could read it as a MASTER module and SUB module. So, until we don't have different records views (as Tjerman mentioned) the best option would be to have two modules with a relationship between them. One for the main data (with the details of the job), and a related one with purposes for the account dept. Let's say we call that module JobAccountsInfo

And then, you could have two normal pages with lists:

  1. Job page (list of all jobs)
  2. Accounts page (list of all records from the module JobAccountsInfo)

Would that be a solution?

PaulMcF1987 commented 3 years ago

@lennyhorstink @tjerman Would that then mean double entries So entering the details on one module and then again on the other sub module? Or would there be a way to update both simultaneously?

I have been working on a new setup at the minute where I have different modules, as mentioned above where I put all fields in the initial job input... But then have a setup where each module can be displayed separately to get only the required information.

But then comes the issue where some info from 1 module is also important to another module and it would then require me to, as far as I can tell, duplicate the information so that it appears in both views.

Also, all of the information will be specific to an account (customer) and associated job, Would that mean that I would need to enter the customer name and job title on each module as well?

Is there a work around to make this easier and reduce the amount of information that I would need to duplicate?

lennyhorstink commented 3 years ago

Would that then mean double entries

You could use the "inline editing" option, if you don't want the user to need to enter two pages to create two records. This might provide the user with a better experience I've added a screenshot from the CRM, where you can directly add product to a price book record:

image

PaulMcF1987 commented 3 years ago

@lennyhorstink Thanks for that, only we dont work from pricebooks, all of our jobs are custom and priced depending on the requirements, there is no standard pricing. So that would then involve double work and creating a new pricebook for each job. Also, The jobs arent logged through the CRM I have made a custom job tracker using low-code.

im just trying to find a way to make the view for each department look neater, as it stands there is a lot of info that is needed by one dept but not the other and there can be some sifting through needed to get to the info that they need. Reducing productivity etc

lennyhorstink commented 3 years ago

The price books are an example of how you can use inline editing. Nothing more :) Check out the right part of the screenshot. Products are directly inserted into a price book in editing mode thanks to the "inline editing" feature. That same "inline editing" feature you could use for your Job module, to enable quick insertion into a JobAccountsInfo module.

PaulMcF1987 commented 3 years ago

@lennyhorstink Is there any documentation on this that you could point me in the direction of?

lennyhorstink commented 3 years ago

There is info at https://docs.cortezaproject.org/corteza-docs/2020.12/integrator-guide/data-model/index.html#page-block-record-list. It's not a long explanation, so let me add a bit more.

image

When you select "Allow inline record editing" the block "Editable module field" appears. All columns selected in the field selector above will appear by default in the "Columns available" block. If you leave them there, they will be shown in the list, but in read-only mode. If you want to have inline editing "turned on" for a field, drag it to the "Columns selected" block.

In the screenshot above you can see both columns will be show in editing mode in the inline editing block.

Then, the "parent field" should have the field of the record-type (the link between the modules).

The "Record sort field" is optional. If you want your users to be able to order fields in a list (see the arrow icons in the "Price Book Entries block" on the left of each row in the screenshot of my other message), create a number field that will be used to store the order automatically.

PaulMcF1987 commented 3 years ago

@lennyhorstink I have tried to figure that out. But as it stands my module Record List blocks with a record table at the side, I enter job details in the list and then edit the block, but if I add other jobs, the record table shows al of the other `"finance" for example, entries.

It seems that if this was to work, it would be a very rough fix

Im not sure if we are talking about the same thing at the minute

Ideally Id like to set a page up as the pic below shows image

that would be the main entry page where I enter all the information for the job... Module A might be customer details... Module B might be Job Requirements... Module C Might be Supplier Details and Module D might be Finance Details.

So all info entered and viewable on 1 page Then having the ability for our Accounting team to view Module D on its own (Maybe with the ability to link to the full list as noted in the pic) Account Managers to View Module A to oversee their customers, again with potential to like to the main page which shows all the information.

so each Module can essentially be viewed as a group or on its own depending on the individual page set up.

Or... rather than setting up different modules, have them all in the one module but in different record list blocks and being able to set up different pages showing different details in the form of the record list depending on the page set up

lennyhorstink commented 3 years ago

I understand. The answer to this is in the first comment :)

As far as different views go... we are planning on doing some restructuring on how data is stored, handled and accessed. Different views might be included then or in the near future. I don't have an exact timeline for this, but I'm guessing it will be done in 2021.6 or 2021.9 -- don't quote me on this.

So, right now we only have 1 record page layout per module. In the future, this might change.

PaulMcF1987 commented 3 years ago

Thanks @lennyhorstink I dont mean to seem difficult, just keen to try and find a solution In terms of the above mentioned - Inline Editing Is there a way to link together...

I tried adding a job and having the accounts module on the same page in a record table using inline editing. It seemed to work

when I added a new job, the accounts table still showed that job so when I added another, there was then 2 entries showing.

Is there a way to make sure that only the entry that is relevant to that particular job is shown? I have tried looking at different filter options but cant find a solution that works

zmija commented 2 years ago

I'm going to close this issue - it's in our backlog to offer several record pages views, though that's not as trivial as it might sound. We plan to address it properly with extended flexibility of the page builder, but not in the next release (it's a major architectural change).