Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
3 Odpowiedzi
1534 Widoki

Hello,

I would like to have a form allowing me to edit the values of the objects in my model.


For example, I have a customized model name "enfant" (ie. children), and I'd like to be able to edit it and with a form on the user's website.


Currently I've managed to display the values present for each object using t-att-value="record.x_studio_name" for example. But I can't validate the form to save the new values.


The question is : how can i make a form in user website to edit a child ?



Here the code of the form for informations (sorry for the image format, i didn't succeed to copy/past code) :


Awatar
Odrzuć
Autor

For now, i have added this code arount the input :
<div class="col-sm">
<record model="x_liste_des_enfants" id="enfant.id">
<field name="x_name">
<input t-att-value="enfant.x_name" type="text" class="form-control s_website_form_input" name="x_name" placeholder="" data-fill-with="undefined"/>
</field>
</record>
<!-- <delete model="record" search="[('id','=',ref('module_name.record_id'))]"/> -->
</div>

Autor Najlepsza odpowiedź

I finally did it!


It feels more like a patch than anything else, but it'll do the job.

In the automation rules, I've added a “on registration” rule, for all my custom fields, with the following python code:

enfant = record.env.user.x_enfants.search([]).filtered(lambda e : e["x_name"] == record["x_name"]).filtered(lambda e : e["id"] != record['id'])
savedName = record["x_name"]
record["x_name"] = record["x_studio_parent"]

if enfant:
    enfant.write({
        "x_studio_age_mois" : record["x_studio_age_mois"],
        "x_studio_poids_kg" : record["x_studio_poids_kg"],
        "x_studio_taille_cm" : record["x_studio_taille_cm"],
        "x_studio_commande" : record["x_studio_commande"],
        "x_studio_parent" : enfant["x_studio_parent"],
        "x_studio_notes" : record["x_studio_notes"]})
else:
    record["x_name"] = savedName


In this code, we retrieve the "enfant" we're interested in with a filter. Then we edit its content with the record data.


The savedName thing is to avoid creating a new object with the x_name currently being parsed, which would belong to the current user. The “else” case is to continue managing the creation of an object in the normal way .

The only problem is that it creates objects to be destroyed afterwards that belong to the OdooBot user, so I think another automation rule to clean this up will do the trick.

Awatar
Odrzuć
Najlepsza odpowiedź

Have you seen https://www.odoo.com/forum/help-1/creating-a-website-form-for-a-new-model-240246 ?

Awatar
Odrzuć
Autor

Yes but that's not working. I'm not looking to customize a form, i try to change the form to let customer edit value by himself, from the website.
For now, i'm trying to do it by adding automated actions in the create form.

Najlepsza odpowiedź

Thank you for sharing

Awatar
Odrzuć
Autor

That's not working at all. I've just shared more informations...

Powiązane posty Odpowiedzi Widoki Czynność
2
maj 25
9787
3
mar 24
5438
0
gru 23
1264
1
sty 21
3457
1
sie 15
3818