Question

How to display only Cities for the US on the Add Simple Filter of a section.

Hello, 

 

I have a custom section that has a field that only shows cities where country is the US. When I'm in the page and click on the look up I only get the US cities.  However if I am on the section and I add a Simple filter and I select the field for the city, the cities are not filtered out by the US, and all cities in the database are listed (see attachments)

 

How do I filter that look up when the user decides to add a simple filter and chooses the city as the column?

 

Thanks in advance,

Jose

 

 

Like 0

Like

9 comments

Hello Jose,

 

This filtering on the edit page can be either a result of:

1) filtering business rule on the page (see this Academy article for more information)

2) custom filtration rule logic stored in the edit page itself

 

The same filtration logic cannot be deployed using standard business rules in the section list, but you can use additional development so to create a custom filter in the section based on some contidions and it can be achieved via ESQ filtration methods (simial to the one described here).

 

But you need to define some logic that could control this filtration (for example which cities should be displayed in the section list filter?) and then deploy this logic in the ESQ parameters.

 

Best regards,

Oscar

Oscar Dylan,

Hi Oscar, 

 

I read the link that you provide for the section list, but unfortunately it does not say which function I have to override in order to call the logic with the ESQ parameters. 

 

Can you tell me where I need to put the ESQ logic that will filter the cities look up values in the section list? The ESQ logic, I know how o write to get the only cities where the country is the Unites States.

 

Thanks,

Jose

 

Jose Hernandez,

 

Hello,

 

Please see this article https://community.creatio.com/articles/setting-custom-section-filters-section. The ESQ should be placed in your overwritten section schema (like AccountSectionV2 or ContactSectionV2) in the methods of the schema. You can create a separate filter field in the fast filter already available in your section and then display only those cities that ESQ will return.

 

Or you can achieve your task without development and in this case you can create several folders in your section list - one for each city like on the screenshot below:

 

Best regards,

Oscar

Oscar Dylan,

Thanks Oscar. The instructions are for Quick filters, but I was looking for a solution where I could filter the data when the user decides to add a simple filter for a field that is a cities look up. We have several city fields on that custom section (Enrollee City , Rep City, Plan City, etc. ) and it is not practical to put that many Quick filters on the section list. We also have other fields based on the Contact lookup and I was hoping to filter those to when the user adds a simple filter for those fields to list just the users in the roles that are allowed for that custom section. 

 

In short, I was looking for a way to filter the data displayed to the user when they add a simple filter that is based on a Creatio lookup.

 

Thanks,

Jose

Jose Hernandez,

 

The result that is needed is to display not all the cities, but serveral cities in the fast filter based on some conditions (like on the screenshot below where the condition is that they start with "De" combination). So you need to override the base filter https://community.creatio.com/articles/setting-custom-section-filters-section and add your custom ESQ-methods https://community.creatio.com/questions/filteration-lookup-based-detail. As a result not all the cities will be displayed, but only those that you specify in the ESQ-method.

 

If your business task is to simply display records that are related to some city it is better to create dynamic folders that could show you the correspondent data and that will be dynamically updated.

 

Otherwise you need to overwrite the basic fast filter and add your condition that could return possible variants of cities:

Best regards,

Oscar

 

Oscar Dylan,

Thanks Oscar, but the link you provided to override the base filter applies to Fixed filters, not the simple filters the users adds on demand.

Jose Hernandez,

these simple filters are part of fixed filters. For example if you remove this part from the code:

 

name: "PeriodFilter",
                            // Filter header.
                            caption: this.get("Resources.Strings.PeriodFilterCaption"),
                            // The data type – date.
                            dataValueType: this.Terrasoft.DataValueType.DATE,
                            // Start date of the filtering period.
                            startDate: {
                                // Filter the data from the [Date] column.
                                columnName: "StartDate",
                                // Default value.
                                defValue: this.Terrasoft.startOfWeek(new Date())
                            },
                            // Date of the filtering period completion.
                            dueDate: {
                                columnName: "StartDate",
                                defValue: this.Terrasoft.endOfWeek(new Date())
                            }
                        },
                        // Owner filter.
                        {
                            // The name of the filter.
                            name: "Owner",
                            // Filter header.
                            caption: this.get("Resources.Strings.OwnerFilterCaption"),
                            // Filter the data from the [Owner] column.
                            columnName: "Owner",
                            // Current user contact is specified as default value.
                            // Value is received from the system setting.
                            defValue: this.Terrasoft.SysValue.CURRENT_USER_CONTACT,
                            // The data type – lookup.
                            dataValueType: this.Terrasoft.DataValueType.LOOKUP,
                            // Filter.
                            filter: BaseFiltersGenerateModule.OwnerFilter

from the code in this article https://academy.creatio.com/documents/technic-sdk/7-16/adding-quick-filter-block-section (that describes adding this block of filters to the section) the filters will be formed with quick filters\folders and tags selection.

 

Best regards,

Oscar

Oscar Dylan,

Thanks Oscar, but I was asking for a way to do it without having to add Quick Filters or dynamic folders  to the section. Is it not possible to display only certain values when the user adds a field on a simple filter?  e,g Click Filters/Folders, select Add Filter, Select Enrollee City, (custom code filters out any city where country is not Unites States).

 

Thanks,

Jose

Jose Hernandez,

 

Such a feature of custom filters in not present out-of-the-box, but can be added via additional development (by replacing the existing fixed filter in the section by a custom one and specifying the ESQ for the filter).

 

It is also possible to add such a filtration without development by creating a separate lookup where only specific cities will appear. In this case when users want to create a filter they will only see specific cities in the lookup and as a result the task will be achieved. You will only need to fill this lookup in for all existing records. The fastest way to do that is to export existing section records and their actual cities and import this data back, but specifying the city value for the custom column we've added.

 

Best regards,

Oscar

Show all comments