Skip to content

Commit

Permalink
Merge branch 'pu/cw/salesEvalDim' into '2024.11'
Browse files Browse the repository at this point in the history
Pu/cw/sales eval dim

See merge request tine20/tine20!4755
  • Loading branch information
corneliusweiss committed Jan 15, 2024
2 parents 3a602de + 122e877 commit 690f2a7
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 12 deletions.
6 changes: 5 additions & 1 deletion tine20/Sales/Controller/Division.php
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,11 @@ public static function evalDimModelConfigHook(array &$_fields, Tinebase_ModelCon
$expander = $mc->jsonExpander;

$expander[Tinebase_Record_Expander::EXPANDER_PROPERTIES][Tinebase_Model_EvaluationDimension::FLD_ITEMS]
[Tinebase_Record_Expander::EXPANDER_PROPERTIES]['divisions'] = [];
[Tinebase_Record_Expander::EXPANDER_PROPERTIES]['divisions'] = [
Tinebase_Record_Expander::EXPANDER_PROPERTIES => [
Sales_Model_DivisionEvalDimensionItem::FLD_DIVISION_ID => [],
]
];

$mc->setJsonExpander($expander);
}
Expand Down
3 changes: 3 additions & 0 deletions tine20/Sales/Model/DivisionEvalDimensionItem.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ class Sales_Model_DivisionEvalDimensionItem extends Tinebase_Record_NewAbstract
self::MODEL_NAME => self::MODEL_NAME_PART,
self::MODLOG_ACTIVE => true,
self::IS_DEPENDENT => true,
self::RECORD_NAME => 'Division', // gettext('GENDER_Division')
self::RECORDS_NAME => 'Divisions', // ngettext('Division', 'Divisions', n)

self::JSON_EXPANDER => [
Tinebase_Record_Expander::EXPANDER_PROPERTIES => [
Expand All @@ -56,6 +58,7 @@ class Sales_Model_DivisionEvalDimensionItem extends Tinebase_Record_NewAbstract

self::FIELDS => [
self::FLD_DIVISION_ID => [
self::LABEL => 'Division', // _('Division')
self::TYPE => self::TYPE_RECORD,
self::CONFIG => [
self::APP_NAME => Sales_Config::APP_NAME,
Expand Down
7 changes: 6 additions & 1 deletion tine20/Sales/Setup/Initialize.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,14 +126,19 @@ public static function createTbSystemCFEvaluationDimension(): void
'is_system' => true,
'definition' => [
Tinebase_Model_CustomField_Config::DEF_FIELD => [
TMCC::LABEL => 'Sales Divisions', // _('Sales Divisions')
TMCC::LABEL => 'Limit to Sales Divisions', // _('Limit to Sales Divisions')
TMCC::TYPE => TMCC::TYPE_RECORDS,
TMCC::CONFIG => [
TMCC::APP_NAME => Sales_Config::APP_NAME,
TMCC::MODEL_NAME => Sales_Model_DivisionEvalDimensionItem::MODEL_NAME_PART,
TMCC::REF_ID_FIELD => Sales_Model_DivisionEvalDimensionItem::FLD_EVAL_DIMENSION_ITEM_ID,
TMCC::DEPENDENT_RECORDS => true,
],
TMCC::UI_CONFIG => [
'searchComboConfig' => [
'useEditPlugin' => false,
],
]
],
]
], true));
Expand Down
21 changes: 21 additions & 0 deletions tine20/Sales/js/Document/AbstractEditDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,27 @@ Tine.Sales.Document_AbstractEditDialog = Ext.extend(Tine.widgets.dialog.EditDial
field.setReadOnly(booked);
}
});

// handle eval_dim division subfilter
this.getForm().items.each((field) => {
if (field.name?.match(/(^eval_dim_.*)/) && !field._documentEditDialogEvalDimBeforeLoadApplied) {
field.store.on('beforeload', (store, options) => {
const category = this.getForm().findField('document_category').selectedRecord;
const division = _.get(category, 'data.division_id.id');
store.baseParams.filter = store.baseParams.filter.concat([
{ condition: 'OR', filters: [
{ field: 'divisions', operator: 'definedBy', value: null },
{ field: 'divisions', operator: 'definedBy', value: [
{ field: 'division_id', operator: 'equals', value: division }
]}
] }
])

})
field._documentEditDialogEvalDimBeforeLoadApplied = true;
}
})

},

getRecordFormItems: function() {
Expand Down
18 changes: 9 additions & 9 deletions tine20/Tinebase/Model/EvaluationDimension.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,15 +100,15 @@ class Tinebase_Model_EvaluationDimension extends Tinebase_Record_NewAbstract
'xtype' => 'tw-modelspickers',
]
],
self::FLD_DEPENDS_ON => [
self::TYPE => self::TYPE_RECORD,
self::LABEL => 'Depends on', // _('Depends on')
self::NULLABLE => true,
self::CONFIG => [
self::APP_NAME => Tinebase_Config::APP_NAME,
self::MODEL_NAME => Tinebase_Model_EvaluationDimension::MODEL_NAME_PART,
],
],
// self::FLD_DEPENDS_ON => [
// self::TYPE => self::TYPE_RECORD,
// self::LABEL => 'Depends on', // _('Depends on')
// self::NULLABLE => true,
// self::CONFIG => [
// self::APP_NAME => Tinebase_Config::APP_NAME,
// self::MODEL_NAME => Tinebase_Model_EvaluationDimension::MODEL_NAME_PART,
// ],
// ],
self::FLD_SORTING => [
self::TYPE => self::TYPE_INTEGER,
self::LABEL => 'Sorting', // _('Sorting')
Expand Down
2 changes: 1 addition & 1 deletion tine20/Tinebase/js/widgets/grid/PickerGridPanel.js
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,7 @@ Tine.widgets.grid.PickerGridPanel = Ext.extend(Ext.grid.EditorGridPanel, {
var mappingFieldDef = this.recordClass.getField(this.isMetadataModelFor),
mappingRecordClass = mappingFieldDef.getRecordClass();
this.searchRecordClass = mappingRecordClass;
searchComboConfig.useEditPlugin = true;
searchComboConfig.useEditPlugin = searchComboConfig.hasOwnProperty('useEditPlugin') ? searchComboConfig.useEditPlugin : true;
}

Ext.apply(searchComboConfig, {
Expand Down

0 comments on commit 690f2a7

Please sign in to comment.