Skip to content

Commit

Permalink
Add configuration field to motor tests
Browse files Browse the repository at this point in the history
Enhanced motor test functionality by introducing a new "configurations" field, enabling tests to be applicable to specific motor configurations. Updated the JavaScript widget, views, and models to accommodate this field, ensuring appropriate validation and UI representation.
  • Loading branch information
cbusillo committed Oct 27, 2024
1 parent 5db13a1 commit a1bf0ff
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 0 deletions.
2 changes: 2 additions & 0 deletions product_connect/models/motor_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class MotorTestTemplate(models.Model):
selection_options = fields.Many2many("motor.test.selection")
default_value = fields.Char()
manufacturers = fields.Many2many("product.manufacturer", domain="[('is_motor_manufacturer', '=', True)]")
configurations = fields.Many2many("motor.configuration")
conditions = fields.One2many(
"motor.test.template.condition",
"template",
Expand Down Expand Up @@ -129,6 +130,7 @@ class MotorTest(models.Model):
is_applicable = fields.Boolean(default=True)

manufacturers = fields.Many2many(related="template.manufacturers")
configurations = fields.Many2many(related="template.configurations")
conditions = fields.One2many(
"motor.test.template.condition",
related="template.conditions",
Expand Down
7 changes: 7 additions & 0 deletions product_connect/static/src/js/widgets/motor_test_widget.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { PdfViewerField } from '@web/views/fields/pdf_viewer/pdf_viewer_field'
* @property {Array<ConditionalTest>} data.conditional_tests
* @property {number} data.section_sequence
* @property {Array<int>} data.manufacturers
* @property {Array<int>} data.configurations
*/
/**
* @typedef {Object} MotorPartRecord
Expand Down Expand Up @@ -160,11 +161,17 @@ export class MotorTestWidget extends Component {
}
const motorManufacturerId = this.props.record.data.manufacturer[0]
const testManufacturers = test.data.manufacturers.records.map(record => record.resId)
const motorConfigurationId = this.props.record.data.configuration[0]
const testConfigurations = test.data.configurations.records.map(record => record.resId)

if (testManufacturers.length > 0 && !testManufacturers.includes(motorManufacturerId)) {
return false
}

if (testConfigurations.length > 0 && testConfigurations.includes(motorConfigurationId)) {
return false
}

const hideConditions = test.data.conditional_tests.records.map(
(condition) => {
const conditionRecord = Object.values(this.conditionsById).find(
Expand Down
7 changes: 7 additions & 0 deletions product_connect/views/motor_test_template_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,17 @@
<field name="sequence"/>

</group>
<group>
<group>
<field name="manufacturers" widget="many2many_checkboxes"
string="Manufacturers this test applies to"/>
</group>
<group>
<field name="configurations" widget="many2many_checkboxes"
string="Configurations this test applies to"/>
</group>
</group>

<label for="conditions" string="Tests based on this test"/>
<field name="conditions">
<tree editable="bottom">
Expand Down
1 change: 1 addition & 0 deletions product_connect/views/motor_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@
<field name="file_result"/>
<field name="default_value"/>
<field name="manufacturers"/>
<field name="configurations"/>
<field name="conditions"/>
<field name="conditional_tests"/>
</tree>
Expand Down

0 comments on commit a1bf0ff

Please sign in to comment.