diff --git a/easy_my_coop/demo/coop.xml b/easy_my_coop/demo/coop.xml
index 3a2db7f..32880c7 100644
--- a/easy_my_coop/demo/coop.xml
+++ b/easy_my_coop/demo/coop.xml
@@ -93,10 +93,6 @@
-
-
-
-
Part B - Worker
Part B
@@ -110,10 +106,6 @@
-
-
-
-
Manuel Dublues
manuel@demo.net
@@ -124,12 +116,12 @@
manual
3
-
+
en_US
-
+
2
50
@@ -137,7 +129,7 @@
-
+
4
50
diff --git a/easy_my_coop/demo/users.xml b/easy_my_coop/demo/users.xml
new file mode 100644
index 0000000..1177375
--- /dev/null
+++ b/easy_my_coop/demo/users.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+ User EMC
+
+
+ user.emc@coop.coop
+ Rue de la colocation, 23
+ Bruxelles
+ 1030
+
+
+
+
+
+ user-emc
+ demo
+
+
+
+
+ Manager EMC
+
+
+ manager.emc@coop.coop
+ Rue de la colocation, 24
+ Liège
+ 4100
+
+
+
+
+
+ manager-emc
+ demo
+
+
+
+
diff --git a/easy_my_coop/security/res_groups.xml b/easy_my_coop/security/res_groups.xml
index e07e82b..6fbb920 100644
--- a/easy_my_coop/security/res_groups.xml
+++ b/easy_my_coop/security/res_groups.xml
@@ -3,7 +3,7 @@
User
-
+
diff --git a/easy_my_coop/tests/test_emc.py b/easy_my_coop/tests/test_emc.py
new file mode 100644
index 0000000..d3b88a5
--- /dev/null
+++ b/easy_my_coop/tests/test_emc.py
@@ -0,0 +1,174 @@
+# Copyright 2019 Coop IT Easy SCRL fs
+# Robin Keunen
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from odoo.fields import Date
+from odoo.exceptions import AccessError
+from .test_base import EMCBaseCase
+
+
+class EMCCase(EMCBaseCase):
+ def setUp(self):
+ super(EMCCase, self).setUp()
+
+ self.request = self.browse_ref(
+ "easy_my_coop.subscription_request_1_demo"
+ )
+ self.bank_journal_euro = self.env["account.journal"].create(
+ {"name": "Bank", "type": "bank", "code": "BNK67"}
+ )
+ self.payment_method_manual_in = self.env.ref(
+ "account.account_payment_method_manual_in"
+ )
+
+ def test_put_on_waiting_list(self):
+ self.as_emc_user()
+ self.request.put_on_waiting_list()
+ self.assertEquals(self.request.state, "waiting")
+
+ def test_validate_subscription_request(self):
+ self.as_emc_user()
+ self.request.validate_subscription_request()
+
+ self.assertEquals(self.request.state, "done")
+ self.assertTrue(self.request.partner_id)
+ self.assertTrue(self.request.partner_id.coop_candidate)
+ self.assertFalse(self.request.partner_id.member)
+ self.assertEquals(self.request.type, "new")
+ self.assertTrue(len(self.request.capital_release_request) >= 1)
+ self.assertEquals(self.request.capital_release_request.state, "open")
+ self.assertTrue(self.request.capital_release_request.sent)
+
+ def test_register_payment_for_capital_release(self):
+ self.as_emc_user()
+ self.request.validate_subscription_request()
+ invoice = self.request.capital_release_request
+
+ ctx = {"active_model": "account.invoice", "active_ids": [invoice.id]}
+ register_payments = (
+ self.env["account.register.payments"]
+ .with_context(ctx)
+ .create(
+ {
+ "payment_date": Date.today(),
+ "journal_id": self.bank_journal_euro.id,
+ "payment_method_id": self.payment_method_manual_in.id,
+ }
+ )
+ )
+ register_payments.create_payments()
+ self.assertEquals(self.request.capital_release_request.state, "paid")
+
+ partner = self.request.partner_id
+ self.assertFalse(partner.coop_candidate)
+ self.assertTrue(partner.member)
+ self.assertTrue(partner.share_ids)
+ self.assertEquals(self.request.partner_id.effective_date, Date.today())
+
+ share = partner.share_ids[0]
+ self.assertEquals(share.share_number, self.request.ordered_parts)
+ self.assertEquals(
+ share.share_product_id, self.request.share_product_id
+ )
+ self.assertEquals(share.effective_date, Date.today())
+
+ def test_user_rights(self):
+
+ request_values = {
+ "name": "test create request",
+ "email": "test@demo.net",
+ "address": "schaerbeekstraat",
+ "zip_code": "1111",
+ "city": "Brussels",
+ "country_id": self.ref("base.be"),
+ "date": Date.today(),
+ "source": "manual",
+ "ordered_parts": 3,
+ "share_product_id": self.ref(
+ "easy_my_coop.product_template_share_type_2_demo"
+ ).product_variant_id.id,
+ "lang": "en_US",
+ }
+
+ # test ir model access for base user
+ self.as_user()
+ read_request = self.browse_ref(
+ "easy_my_coop.subscription_request_1_demo"
+ )
+ with self.assertRaises(AccessError):
+ read_request.name = "test write request"
+ with self.assertRaises(AccessError):
+ self.env["subscription.request"].create(request_values)
+ with self.assertRaises(AccessError):
+ read_request.unlink()
+
+ share_line = self.browse_ref("easy_my_coop.share_line_1_demo")
+ with self.assertRaises(AccessError):
+ share_line.share_number = 3
+
+ # test ir model access for easy my coop user
+ self.as_emc_user()
+ read_request = self.browse_ref(
+ "easy_my_coop.subscription_request_1_demo"
+ )
+ read_request.name = "test write request"
+ create_request = self.env["subscription.request"].create(
+ request_values
+ )
+ with self.assertRaises(AccessError):
+ create_request.unlink()
+
+ share_line = self.browse_ref("easy_my_coop.share_line_1_demo")
+ share_line.share_number = 3
+ with self.assertRaises(AccessError):
+ share_line.unlink()
+
+ share_type = self.browse_ref(
+ "easy_my_coop.product_template_share_type_1_demo"
+ )
+ share_type.list_price = 30
+ with self.assertRaises(AccessError):
+ self.env["product.template"].create(
+ {
+ "name": "Part C - Client",
+ "short_name": "Part C",
+ "is_share": True,
+ "default_share_product": True,
+ "force_min_qty": True,
+ "minimum_quantity": 2,
+ "by_individual": True,
+ "by_company": True,
+ "list_price": 50,
+ "display_on_website": True,
+ }
+ )
+ with self.assertRaises(AccessError):
+ share_type.unlink()
+
+ # test ir model access for easy my coop manager
+ self.as_emc_manager()
+ read_request = self.browse_ref(
+ "easy_my_coop.subscription_request_1_demo"
+ )
+ read_request.name = "test write request"
+ create_request = self.env["subscription.request"].create(
+ request_values
+ )
+ create_request.unlink()
+
+ share_type = self.env["product.template"].create(
+ {
+ "name": "Part C - Client",
+ "short_name": "Part C",
+ "is_share": True,
+ "default_share_product": True,
+ "force_min_qty": True,
+ "minimum_quantity": 2,
+ "by_individual": True,
+ "by_company": True,
+ "list_price": 50,
+ "display_on_website": True,
+ }
+ )
+ share_type.list_price = 30
+ share_type.unlink()
diff --git a/easy_my_coop_document/__openerp__.py b/easy_my_coop_document/__openerp__.py
index 8a2112c..1c61920 100644
--- a/easy_my_coop_document/__openerp__.py
+++ b/easy_my_coop_document/__openerp__.py
@@ -4,7 +4,9 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
-# migrate in v12 and isolate from emc
+ # migrate in v12 and isolate from emc
+ # add manager group or use relevant existing group
+ # add ir.model.access rules for that user
'name': 'Easy My Coop Document',
'summary': """
diff --git a/easy_my_coop_loan/__manifest__.py b/easy_my_coop_loan/__manifest__.py
index 60b4386..7a39db5 100644
--- a/easy_my_coop_loan/__manifest__.py
+++ b/easy_my_coop_loan/__manifest__.py
@@ -23,5 +23,8 @@
'views/menus.xml',
'data/mail_template_data.xml',
],
+ "demo": [
+ "demo/coop.xml",
+ ],
'installable': True,
}
diff --git a/easy_my_coop_loan/demo/coop.xml b/easy_my_coop_loan/demo/coop.xml
new file mode 100644
index 0000000..57452f2
--- /dev/null
+++ b/easy_my_coop_loan/demo/coop.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ test loan issue
+
+
+
+
+
+
+
+ 0.03
+ 100
+ 4000
+ 10000
+ 1000
+ yearly
+
+
+
+ 0.08
+ ongoing
+
+
+
+
+ 3
+
+
+