浏览代码

initial commit

davidmscholz 1 周之前
当前提交
940727c6e9

+ 2 - 0
README.md

@@ -0,0 +1,2 @@
+# set_customer_groups
+This is a custom Odoo module that assigns groups to customers based on their purchases.

+ 4 - 0
__init__.py

@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+
+from . import controllers
+from . import models

+ 35 - 0
__manifest__.py

@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+{
+    'name': "set_customer_groups",
+
+    'summary': "Add users to groups based on their purchases.",
+
+    'description': """
+    When a user makes a purchase through the eCommerce store add the user to one or multiple groups as defined in 
+    a mapping.
+    """,
+
+    'author': "dmsc.dev",
+    'website': "https://www.dmsc.dev",
+
+    # Categories can be used to filter modules in modules listing
+    # Check https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/ir_module_category_data.xml
+    # for the full list
+    'category': 'Technical',
+    'version': '0.1',
+
+    # any module necessary for this one to work correctly
+    'depends': ['base', 'website_sale'],
+
+    # always loaded
+    'data': [
+        # 'security/ir.model.access.csv',
+        'views/views.xml',
+        'views/templates.xml',
+    ],
+    # only loaded in demonstration mode
+    'demo': [
+        'demo/demo.xml',
+    ],
+}
+

二进制
__pycache__/__init__.cpython-312.pyc


+ 3 - 0
controllers/__init__.py

@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import controllers

二进制
controllers/__pycache__/__init__.cpython-312.pyc


二进制
controllers/__pycache__/controllers.cpython-312.pyc


+ 22 - 0
controllers/controllers.py

@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# from odoo import http
+
+
+# class SetCustomerGroups(http.Controller):
+#     @http.route('/set_customer_groups/set_customer_groups', auth='public')
+#     def index(self, **kw):
+#         return "Hello, world"
+
+#     @http.route('/set_customer_groups/set_customer_groups/objects', auth='public')
+#     def list(self, **kw):
+#         return http.request.render('set_customer_groups.listing', {
+#             'root': '/set_customer_groups/set_customer_groups',
+#             'objects': http.request.env['set_customer_groups.set_customer_groups'].search([]),
+#         })
+
+#     @http.route('/set_customer_groups/set_customer_groups/objects/<model("set_customer_groups.set_customer_groups"):obj>', auth='public')
+#     def object(self, obj, **kw):
+#         return http.request.render('set_customer_groups.object', {
+#             'object': obj
+#         })
+

+ 30 - 0
demo/demo.xml

@@ -0,0 +1,30 @@
+<odoo>
+    <data>
+<!--
+          <record id="object0" model="set_customer_groups.set_customer_groups">
+            <field name="name">Object 0</field>
+            <field name="value">0</field>
+          </record>
+
+          <record id="object1" model="set_customer_groups.set_customer_groups">
+            <field name="name">Object 1</field>
+            <field name="value">10</field>
+          </record>
+
+          <record id="object2" model="set_customer_groups.set_customer_groups">
+            <field name="name">Object 2</field>
+            <field name="value">20</field>
+          </record>
+
+          <record id="object3" model="set_customer_groups.set_customer_groups">
+            <field name="name">Object 3</field>
+            <field name="value">30</field>
+          </record>
+
+          <record id="object4" model="set_customer_groups.set_customer_groups">
+            <field name="name">Object 4</field>
+            <field name="value">40</field>
+          </record>
+-->
+    </data>
+</odoo>

+ 3 - 0
models/__init__.py

@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import models

二进制
models/__pycache__/__init__.cpython-312.pyc


二进制
models/__pycache__/models.cpython-312.pyc


+ 13 - 0
models/models.py

@@ -0,0 +1,13 @@
+# -*- coding: utf-8 -*-
+
+from odoo import models, fields
+
+
+class CustomerGroupMapping(models.Model):
+    _name = 'set_customer_groups.set_customer_groups'
+    _description = 'set_customer_groups.set_customer_groups'
+
+    page = fields.Many2one('website.page', ondelete = 'cascade')
+    group = fields.Many2many('res.groups')
+    product = fields.Many2one('product.product')
+

+ 2 - 0
security/ir.model.access.csv

@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_set_customer_groups_set_customer_groups,set_customer_groups.set_customer_groups,model_set_customer_groups_set_customer_groups,base.group_user,1,1,1,1

+ 24 - 0
views/templates.xml

@@ -0,0 +1,24 @@
+<odoo>
+    <data>
+<!--
+        <template id="listing">
+          <ul>
+            <li t-foreach="objects" t-as="object">
+              <a t-attf-href="#{ root }/objects/#{ object.id }">
+                <t t-esc="object.display_name"/>
+              </a>
+            </li>
+          </ul>
+        </template>
+        <template id="object">
+          <h1><t t-esc="object.display_name"/></h1>
+          <dl>
+            <t t-foreach="object._fields" t-as="field">
+              <dt><t t-esc="field"/></dt>
+              <dd><t t-esc="object[field]"/></dd>
+            </t>
+          </dl>
+        </template>
+-->
+    </data>
+</odoo>

+ 60 - 0
views/views.xml

@@ -0,0 +1,60 @@
+<odoo>
+  <data>
+    <!-- explicit list view definition -->
+<!--
+    <record model="ir.ui.view" id="set_customer_groups.list">
+      <field name="name">set_customer_groups list</field>
+      <field name="model">set_customer_groups.set_customer_groups</field>
+      <field name="arch" type="xml">
+        <list>
+          <field name="name"/>
+          <field name="value"/>
+          <field name="value2"/>
+        </list>
+      </field>
+    </record>
+-->
+
+    <!-- actions opening views on models -->
+<!--
+    <record model="ir.actions.act_window" id="set_customer_groups.action_window">
+      <field name="name">set_customer_groups window</field>
+      <field name="res_model">set_customer_groups.set_customer_groups</field>
+      <field name="view_mode">list,form</field>
+    </record>
+-->
+
+    <!-- server action to the one above -->
+<!--
+    <record model="ir.actions.server" id="set_customer_groups.action_server">
+      <field name="name">set_customer_groups server</field>
+      <field name="model_id" ref="model_set_customer_groups_set_customer_groups"/>
+      <field name="state">code</field>
+      <field name="code">
+        action = {
+          "type": "ir.actions.act_window",
+          "view_mode": "list,form",
+          "res_model": model._name,
+        }
+      </field>
+    </record>
+-->
+
+    <!-- Top menu item -->
+<!--
+    <menuitem name="set_customer_groups" id="set_customer_groups.menu_root"/>
+-->
+    <!-- menu categories -->
+<!--
+    <menuitem name="Menu 1" id="set_customer_groups.menu_1" parent="set_customer_groups.menu_root"/>
+    <menuitem name="Menu 2" id="set_customer_groups.menu_2" parent="set_customer_groups.menu_root"/>
+-->
+    <!-- actions -->
+<!--
+    <menuitem name="List" id="set_customer_groups.menu_1_list" parent="set_customer_groups.menu_1"
+              action="set_customer_groups.action_window"/>
+    <menuitem name="Server to list" id="set_customer_groups" parent="set_customer_groups.menu_2"
+              action="set_customer_groups.action_server"/>
+-->
+  </data>
+</odoo>