Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
third-party
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cooperatic-foodcoops
third-party
Commits
f1067282
Commit
f1067282
authored
Feb 28, 2022
by
Thibault Grandjean
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pair and unpair members
parent
3c00ed51
Pipeline
#1856
passed with stage
in 1 minute 27 seconds
Changes
3
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
95 additions
and
0 deletions
+95
-0
admin.py
members/admin.py
+88
-0
urls.py
members/urls.py
+2
-0
common.py
outils/common.py
+5
-0
No files found.
members/admin.py
View file @
f1067282
from
django.contrib
import
admin
from
django.contrib
import
admin
from
outils.common_imports
import
*
from
outils.common_imports
import
*
from
outils.for_view_imports
import
*
from
outils.for_view_imports
import
*
from
outils.common
import
OdooAPI
from
members.models
import
CagetteUser
from
members.models
import
CagetteUser
from
members.models
import
CagetteMembers
from
members.models
import
CagetteMembers
from
members.models
import
CagetteMember
from
members.models
import
CagetteMember
...
@@ -458,3 +459,90 @@ def get_member_info(request, member_id):
...
@@ -458,3 +459,90 @@ def get_member_info(request, member_id):
response
=
JsonResponse
(
res
,
status
=
403
)
response
=
JsonResponse
(
res
,
status
=
403
)
print
(
response
.
content
)
print
(
response
.
content
)
return
response
return
response
def
create_pair
(
request
):
"""Create pair
payload example:
{
"parent": {"id": 3075},
"child": {"id": 3067}
}
"""
if
request
.
method
!=
'POST'
:
return
JsonResponse
({
"message"
:
"Method not available"
})
if
CagetteUser
.
are_credentials_ok
(
request
):
api
=
OdooAPI
()
data
=
json
.
loads
(
request
.
body
.
decode
())
parent_id
=
data
[
'parent'
][
'id'
]
child_id
=
data
[
'child'
][
'id'
]
# create attached account for child
fields
=
[
"birthdate"
,
"city"
,
"commercial_partner_id"
,
"company_id"
,
"company_type"
,
"cooperative_state"
,
"barcode_rule_id"
,
"country_id"
,
"customer"
,
"department_id"
,
"email"
,
"employee"
,
"image"
,
"image_medium"
,
"image_small"
,
"mobile"
,
"name"
,
"phone"
,
"sex"
,
"street"
,
"street2"
,
"zip"
]
child
=
api
.
search_read
(
'res.partner'
,
[[
'id'
,
'='
,
child_id
]],
fields
)[
0
]
parent
=
api
.
search_read
(
'res.partner'
,
[[
'id'
,
'='
,
parent_id
]],
[
'commercial_partner_id'
])[
0
]
del
child
[
"id"
]
for
field
in
child
.
keys
():
if
field
.
endswith
(
"_id"
):
child
[
field
]
=
child
[
field
][
0
]
child
[
'is_associated_people'
]
=
True
child
[
'parent_id'
]
=
parent
[
'commercial_partner_id'
][
0
]
# get barcode rule id
bbcode_rule
=
api
.
search_read
(
"barcode.rule"
,
[[
'for_associated_people'
,
"="
,
True
]],
[
'id'
])[
0
]
child
[
'barcode_rule_id'
]
=
bbcode_rule
[
"id"
]
attached_account
=
api
.
create
(
'res.partner'
,
child
)
print
(
attached_account
)
# generate_barcode
api
.
execute
(
'res.partner'
,
'generate_base'
,
[
attached_account
])
# api.execute('res.partner', 'generate_barcode', [attached_account])
response
=
JsonResponse
({
"message"
:
"Succesfuly paired members"
},
status
=
200
)
else
:
response
=
JsonResponse
({
"message"
:
"Unauthorized"
},
status
=
403
)
return
response
def
delete_pair
(
request
):
"""Delete pair
payload example:
{
"parent": {"id": 3075}
}
"""
if
request
.
method
!=
'POST'
:
return
JsonResponse
({
"message"
:
"Method not available"
})
if
CagetteUser
.
are_credentials_ok
(
request
):
api
=
OdooAPI
()
data
=
json
.
loads
(
request
.
body
.
decode
())
parent_id
=
data
[
'parent'
][
'id'
]
# get attached accound
child
=
api
.
search_read
(
'res.partner'
,
[[
'parent_id'
,
'='
,
parent_id
]],
[
'id'
])[
0
]
api
.
delete
(
'res.partner'
,
[
child
[
'id'
]])
response
=
JsonResponse
({
"message"
:
"Succesfuly unpaired members"
},
status
=
200
)
else
:
response
=
JsonResponse
({
"message"
:
"Unauthorized"
},
status
=
403
)
return
response
members/urls.py
View file @
f1067282
...
@@ -63,4 +63,6 @@ urlpatterns = [
...
@@ -63,4 +63,6 @@ urlpatterns = [
url
(
r'^delete_shift_registration$'
,
admin
.
delete_shift_registration
),
url
(
r'^delete_shift_registration$'
,
admin
.
delete_shift_registration
),
url
(
r'^get_member_info/(\d+)$'
,
admin
.
get_member_info
),
url
(
r'^get_member_info/(\d+)$'
,
admin
.
get_member_info
),
url
(
r'^admin/create_pair$'
,
admin
.
create_pair
),
url
(
r'^admin/delete_pair$'
,
admin
.
delete_pair
),
]
]
outils/common.py
View file @
f1067282
...
@@ -70,6 +70,11 @@ class OdooAPI:
...
@@ -70,6 +70,11 @@ class OdooAPI:
return
self
.
models
.
execute_kw
(
self
.
db
,
self
.
uid
,
self
.
passwd
,
return
self
.
models
.
execute_kw
(
self
.
db
,
self
.
uid
,
self
.
passwd
,
entity
,
'create'
,
[
fields
])
entity
,
'create'
,
[
fields
])
def
delete
(
self
,
entity
,
ids
):
"""Destroy entity instance by given ids."""
return
self
.
models
.
execute_kw
(
self
.
db
,
self
.
uid
,
self
.
passwd
,
entity
,
'unlink'
,
[
ids
])
def
execute
(
self
,
entity
,
method
,
ids
,
params
=
{}):
def
execute
(
self
,
entity
,
method
,
ids
,
params
=
{}):
return
self
.
models
.
execute_kw
(
self
.
db
,
self
.
uid
,
self
.
passwd
,
return
self
.
models
.
execute_kw
(
self
.
db
,
self
.
uid
,
self
.
passwd
,
entity
,
method
,
[
ids
],
params
)
entity
,
method
,
[
ids
],
params
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment