diff --git a/testcase_management/__manifest__.py b/testcase_management/__manifest__.py index 23813da6a094cb46c8acd193690a37a96ba80210..2b4cf2e7031068a3980b78aa32b3561beb320a64 100644 --- a/testcase_management/__manifest__.py +++ b/testcase_management/__manifest__.py @@ -16,9 +16,20 @@ "Dimitris Paitridis " "John Boyle " ], - "depends": ["base"], + "depends": [ + "base", + "project", + "mail", + "portal", + ], "external_dependencies": {"python": []}, - "data": [], + "data": [ + "security/ir.model.access.csv", + "views/tcms_testing_views.xml", + "views/tcms_testcase_views.xml", + "views/tcms_testplan_views.xml", + "views/tcms_testrun_views.xml", + ], "qweb": [], "demo": [], "test": [], diff --git a/testcase_management/models/__init__.py b/testcase_management/models/__init__.py index 969e696c4ea659e6ce65d7115b25025d0ba15400..c182c684625cff1cb39ecd0a1d552a8df4c996be 100644 --- a/testcase_management/models/__init__.py +++ b/testcase_management/models/__init__.py @@ -3,3 +3,6 @@ from . import tcms_tags from . import tcms_testcase +from . import tcms_component +from . import tcms_testplan +from . import tcms_testrun diff --git a/testcase_management/models/tcms_component.py b/testcase_management/models/tcms_component.py new file mode 100644 index 0000000000000000000000000000000000000000..78de7cdbacc1c2b7ef7a647a346b17ae4db390dd --- /dev/null +++ b/testcase_management/models/tcms_component.py @@ -0,0 +1,12 @@ +# Copyright (C) 2021 Simplify Solutions. All Rights Reserved +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import fields, models + + +class TcmsComponent(models.Model): + _name = "tcms.component" + _description = "Test Components" + + name = fields.Char("Name", required=True) + description = fields.Char("Description", default=0) diff --git a/testcase_management/models/tcms_tags.py b/testcase_management/models/tcms_tags.py index 4896de3668e22a85c03b010cae73b357cf601b2e..a104141c3d7910967f30ea4a3d0a0f5c3039f60c 100644 --- a/testcase_management/models/tcms_tags.py +++ b/testcase_management/models/tcms_tags.py @@ -4,7 +4,7 @@ from odoo import fields, models -class Tcms(models.Model): +class TcmsTags(models.Model): _name = "tcms.tags" _description = "Test Tags" diff --git a/testcase_management/models/tcms_testcase.py b/testcase_management/models/tcms_testcase.py index ff623cc674c0199d3784eb7a34def36d6d4998c0..826f86d3f1e57946940c315818c9dc45443b82d7 100644 --- a/testcase_management/models/tcms_testcase.py +++ b/testcase_management/models/tcms_testcase.py @@ -65,7 +65,7 @@ class Testcase(models.Model): track_visibility="onchange", ) stage_id = fields.Many2one( - "testcase.stage", + "tcms.testcase.stage", string="Stage", ondelete="restrict", track_visibility="onchange", @@ -81,7 +81,7 @@ class Testcase(models.Model): extra_link = fields.Char("Extra Link") requirement = fields.Char("Requirement") notes = fields.Text("Notes") - text = fields.Text("Text") + text = fields.Html("Text") setup_duration = fields.Float( "Setup Duration", help="Setup duration in hours and minutes." ) @@ -92,5 +92,5 @@ class Testcase(models.Model): user_id = fields.Many2one("res.users", "Author") tester_id = fields.Many2one("res.users", "Tester") reviewer_id = fields.Many2one("res.users", "Reviewer") - plan_id = fields.Many2many("tcms.testplan", "Test Case Plan") + plan_ids = fields.Many2many("tcms.testplan", string="Test Case Plan") component_id = fields.Many2one("tcms.component", "Component") diff --git a/testcase_management/models/tcms_testplan.py b/testcase_management/models/tcms_testplan.py index 7e67037362b15c7b30fa9089fe732074faabe0f6..3a23e54f5f196b834379ad0f63794cd094271ea0 100644 --- a/testcase_management/models/tcms_testplan.py +++ b/testcase_management/models/tcms_testplan.py @@ -22,8 +22,8 @@ class TestPlan(models.Model): user_id = fields.Many2one("res.users", "Author") tester_id = fields.Many2one("res.users", "Tester") project_id = fields.Many2one("project.project", "Project") - testcase_ids = fields.One2mant( - "tcms.testplan.testcase", "testplan_ids", "Test Cases" + testcase_ids = fields.One2many( + "tcms.testplan.testcase", "testplan_id", "Test Cases" ) @@ -31,5 +31,6 @@ class TestPlanTestCase(models.Model): _name = "tcms.testplan.testcase" _description = "Test Plan Test Cases" + testplan_id = fields.Many2one("tcms.testplan", "Test Plan") testcase_id = fields.Many2one("tcms.testcase", "Test Case") sequence = fields.Integer() diff --git a/testcase_management/models/tcms_testrun.py b/testcase_management/models/tcms_testrun.py index 275169aa68cc56275092be4fffdfcea39609880f..056f092b72f1a5523cf92106e8b8fd76516bc705 100644 --- a/testcase_management/models/tcms_testrun.py +++ b/testcase_management/models/tcms_testrun.py @@ -6,6 +6,7 @@ from odoo import fields, models class TestRun(models.Model): _name = "tcms.testrun" + _inherit = ["portal.mixin", "mail.thread", "mail.activity.mixin"] _description = "Test Runs" name = fields.Char("Name", required=True) @@ -16,3 +17,14 @@ class TestRun(models.Model): tag_ids = fields.Many2many("tcms.tags", string="Test Tags") notes = fields.Text("Notes") tester_id = fields.Many2one("res.users", "Tester") + state = fields.Selection( + [ + ("draft", "Draft"), + ("open", "In Progress"), + ("failed", "Failed"), + ("done", "Passed"), + ("cancel", "Cancelled"), + ], + string="Status", + default="draft", + ) diff --git a/testcase_management/security/ir.model.access.csv b/testcase_management/security/ir.model.access.csv new file mode 100644 index 0000000000000000000000000000000000000000..c0dc219aee39fbb963460348112665c7123ec363 --- /dev/null +++ b/testcase_management/security/ir.model.access.csv @@ -0,0 +1,9 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_tcms_testcase_manager,tcms_testcase manager,model_tcms_testcase,base.group_user,1,1,1,1 +access_tcms_testcase_category_manager,tcms_testcase_category manager,model_tcms_testcase_category,base.group_user,1,1,1,1 +access_tcms_testcase_stage_manager,tcms_testcase_stage manager,model_tcms_testcase_stage,base.group_user,1,1,1,1 +access_tcms_testrun_manager,tcms_testrun manager,model_tcms_testrun,base.group_user,1,1,1,1 +access_tcms_testplan_manager,tcms_testplan manager,model_tcms_testplan,base.group_user,1,1,1,1 +access_tcms_testplan_testcase_manager,tcms_testplan_testcase manager,model_tcms_testplan_testcase,base.group_user,1,1,1,1 +access_tcms_component_manager,tcms_component manager,model_tcms_component,base.group_user,1,1,1,1 +access_tcms_tags_manager,tcms_tags manager,model_tcms_tags,base.group_user,1,1,1,1 diff --git a/testcase_management/static/description/icon.png b/testcase_management/static/description/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..879faa4c1b120b6b5e8f1fc88705e11381e6e550 Binary files /dev/null and b/testcase_management/static/description/icon.png differ diff --git a/testcase_management/views/tcms_testcase_views.xml b/testcase_management/views/tcms_testcase_views.xml new file mode 100644 index 0000000000000000000000000000000000000000..8759d017fd3953b95f9fdeb7d984dbf0bb327e7b --- /dev/null +++ b/testcase_management/views/tcms_testcase_views.xml @@ -0,0 +1,108 @@ + + + + + tcms.testcase.tree + tcms.testcase + + + + + + + + + + + + + + + + tcms.testcase.form + tcms.testcase + +
+
+
+ +
+ +
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + Test Cases + tcms.testcase + tree,form + + + + + + +
diff --git a/testcase_management/views/tcms_testing_views.xml b/testcase_management/views/tcms_testing_views.xml new file mode 100644 index 0000000000000000000000000000000000000000..6226c221a2d35bb3ca814a944865f8e44eb17c65 --- /dev/null +++ b/testcase_management/views/tcms_testing_views.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/testcase_management/views/tcms_testplan_views.xml b/testcase_management/views/tcms_testplan_views.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b2212d0299fddeddf89c038811c580ff32d41e3 --- /dev/null +++ b/testcase_management/views/tcms_testplan_views.xml @@ -0,0 +1,78 @@ + + + + + tcms.testplan.tree + tcms.testplan + + + + + + + + + + + + + + tcms.testplan.form + tcms.testplan + +
+
+
+ +
+ +
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + Test Plans + tcms.testplan + tree,form + + + + + + + +
diff --git a/testcase_management/views/tcms_testrun_views.xml b/testcase_management/views/tcms_testrun_views.xml new file mode 100644 index 0000000000000000000000000000000000000000..4c4948200afd2198b17b6bad25ac23106e1071eb --- /dev/null +++ b/testcase_management/views/tcms_testrun_views.xml @@ -0,0 +1,115 @@ + + + + + tcms.testrun.kanban + tcms.testrun + + + + + +
+
+
+ + + +
+ + + +
+
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+ + + tcms.testrun.tree + tcms.testrun + + + + + + + + + + + + + tcms.testrun.form + tcms.testrun + +
+
+ +
+ +
+ +
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + Test Runs + tcms.testrun + kanban,tree,form + + + + +
diff --git a/testcase_management/views/test_testcase_views.xml b/testcase_management/views/test_testcase_views.xml deleted file mode 100644 index d254d1a46c61b21feec686c3e0a82bfdfd24646f..0000000000000000000000000000000000000000 --- a/testcase_management/views/test_testcase_views.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - -