Many2Many вставка полей в запросе Odoo не работает в Android - PullRequest
1 голос
/ 12 марта 2019

Я пытаюсь создать встречу с посетителями в Odoo, Поля участников - это поле многие2many. если я не добавлю его в запрос, собрание будет создано без участия посетителей. Однако, если я добавлю ключ "partner_ids", который соответствует полю many2many. Встреча не появляется. Вот примеры того, что я пробовал:

 // Attempt 1 : add them as an integer array     
    List<Integer> partnerIds= new ArrayList<>();
            partnerIds.add(15403);
            partnerIds.add(7567);
            partnerIds.add(7564);
    // Attempt 2 : add them in a hashmap array;
            List<HashMap<String,Integer>> hashMapList= new ArrayList<>();
            HashMap<String,Integer> hashMap= new HashMap<>();
            hashMap.put("id",15401);
            HashMap<String,Integer> hashMap2= new HashMap<>();
            hashMap2.put("id",15400);
            HashMap<String,Integer> hashMap3= new HashMap<>();
            hashMap3.put("id",15399);

            hashMapList.add(hashMap);
            hashMapList.add(hashMap2);
            hashMapList.add(hashMap3);

попытка 3: добавить их в список объектов, как указано здесь

List<Object> testObj= new ArrayList<>();
    //Object obj = new Object();
    testObj.add(0);
    testObj.add(0);
    testObj.add(hashMapList);

    List<Object> manyToManyRecord = new ArrayList<>();
    manyToManyRecord.add(testObj);

    Log.d("manyToManyRecord", manyToManyRecord.toString());

    OdooValues values = new OdooValues();

    values.put("opportunity_id",25619);



    values.put("partner_ids", manyToManyRecord);
    values.put("name", "App Discussion Meet ");
    values.put("start", "2019-03-27 10:00:00");
    values.put("stop", "2019-03-27 20:00:00");
    values.put("allday", false);
    values.put("day", 0);
    values.put("user_id", 1);
    values.put("active", true);
    values.put("recurrent_id", 0);
    values.put("x_project_latitude", 0);
    values.put("x_project_longitude", 0);
    values.put("description", "Test Meeting Description");

    client.create("calendar.event", values, new IOdooResponse() {
        @Override
        public void onResult(OdooResult result) {
            int serverId = result.getInt("result");




Log.d("Meeting Id", String.valueOf(serverId));
            }
        });

Так где же я совершаю ошибку? Любая помощь с шагами приветствуется!

1 Ответ

0 голосов
/ 12 марта 2019

Это решение сработало для меня:

//The 15401,15400... are static ids that were inputted for testing
values.put("partner_ids", asList(asList(6, 0, asList(15401,15400,15399))));
...