Odoo Help

2

0
8 Answers
2
Avatar

Axel Mendoza

--Axel Mendoza--
13603
| 8 8 10
Camaguey, Cuba
--Axel Mendoza--

DevOps - Full stack - Software Architect - Developer - Technology Integrator

I could help you to develop anything and solve complex problems based on technologies, integrations and tricky stuffs mostly in Python with OpenERP/Odoo, Zato, Django and many others frameworks programming languages and technologies.

I offers consulting services to anyone with an unanswered questions or needs for customizations. Think about it, maybe it's better to have an expert to solve your issues and projects than having a full-time employee trying to understand what to do and how

Reach me at aekroft@gmail.com

Axel Mendoza
23/7/17 05:07

Hi @All

As @Fabrice said that could be done using the form builder building block and also programming against the website_form style of defining forms.

The following example is just in cases where you need to send a form using ajax and do something else in the page without going to a new page or refresh entirely the current one

You could get the complete example of how that could be done a module at:

https://github.com/aek/aek-odoo/tree/10.0/addons/website_fileupload

It's just an example module

I use this html in a custom page:

<?xml version="1.0"?>
<t t-name="website.aek">
    <t t-call="website.layout">
        <div id="wrap" class="oe_structure oe_empty">
            <div class="container">
                <form class="website_fileupload_form" method="POST">
                    <div class="form-group"> 
                        <label class="control-label" for="file">File:</label> 
                        <input type="file" name="file" class="form-control" accept="image/*,application/pdf"/> 
                    </div>
                </form>
                <a class="btn btn-info website_fileupload_submit">Save</a>
            </div>
        </div>
    </t>
</t>

Best Regards

2
Avatar

Niyas Raphy

--Niyas Raphy--
24280
| 7 7 11
Wayanad, India
--Niyas Raphy--

Odoo Techno Functionalist

Feel free to connect :  niyasraphyk@gmail.com

Twitter:https://twitter.com/niyasraphy
LinkedIn: https://www.linkedin.com/in/niyasraphy/
FB:https://www.facebook.com/niyasraphy123

Happy to help :)

Niyas Raphy
27/7/17 00:05

Hi Yenthe,

To pass the attachment from template to js and then to the controller as base64 encoded, you can look the below sample.

This is in the case  of saving a binary image which is added as a attachment.

In the template.

<div class="col-md-7 col-sm-8">
<input type="file" id="photo" class="form-control o_website_form_input" name="photo" multiple="1"/>
</div>

Then in the JS,

var image_input = null;
var file = document.getElementById('photo').files[0];
if (file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e)
{
image_input = e.target.result;
}
var result = {'article': image_input}
$.ajax({
url: "/page/admission_details",
method: "POST",
dataType: "json",
data: result,

Then in the controller,

article = kwargs['article']
article_1 = unicodedata.normalize('NFKD', article).encode('ascii', 'ignore')
article_2 = article_1.lstrip('data:image/jpeg;base64,')

Then save it to the Db,

add_student = request.env['course.admission']
student_data = {
'stud_image': '/' + article_2,
}
created_id = add_student.create(student_data)


Hope it helps. Thanks

1
Avatar

Fabrice Henrion (fhe)

--Fabrice Henrion (fhe)--
6961
| 8 8 12
San Francisco, United States
--Fabrice Henrion (fhe)--

Director Odoo Americas

Fabrice Henrion (fhe)
22/7/17 22:52

No need for custom code. It's supported in standard.

Use the 'form builder' building block. Target the model you want to attach files to. Select the fields you want to fill in (you can also hide them if you want to force default values). Then use a binary field to have a file upload widget in the form. It will attach the file as an attachment to the backend record that will be created by the submission of the form.

2 Comments
Niyas Raphy
22/7/17 23:39

what in case if we have to do it as Yenthe mentioned ?

Yenthe Van Ginneken
23/7/17 09:56

Thanks a lot for the suggestion Fabrice. Sadly, this Odoo is a community and the building block seems to be enterprise only ;-)

0

hi i want to add field file into my forum and i don't know what's wrong any help please ? 

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="add">
<title>Services</title>
<t t-call="website.layout">
<t t-set="additional_title">Services</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container">
<h1>Nous Sommes Votre réference d'aide</h1>
<div class="row">
<div class="col-md-8">
<div class="oe_structure">
<div>
<p>Nous serons bien augré de vos attentes.</p>
<p>We'll do our best to get back to you as soon as possible.</p>
</div>
</div>
<section id="forms">
<form method="post" class="s_website_form container-fluid form-horizontal"
action="/website_form/" data-model_name="association.service"
data-success_page="/page/services/add.thankyou"
enctype="multipart/form-data">
<!-- Description text field, required -->
<div class="form-group form-field">
<label class="col-md-3 col-sm-4 control-label" for="titre">Titre
</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control o_website_form_input"
name="titre"
t-att-value="request.params.get('titre', '')" required=""/>
</div>
</div>
<div class="form-group form-field o_website_form_required_custom">
<label class="col-md-3 col-sm-4 control-label" for="num_benifier">Phone
Number
</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control o_website_form_input"
name="num_benifier"
t-att-value="request.params.get('num_benifier', '')"
required=""/>
</div>
</div>
<div class="form-group form-field o_website_form_required_custom">
<label class="col-md-3 col-sm-4 control-label" for="email">Email
</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control o_website_form_input"
name="email"
required="" t-att-value="request.params.get('email', '')"/>
</div>
</div>


<div class="form-group form-field o_website_form_required_custom">
<label class="col-md-3 col-sm-4 control-label" for="description">
Description
</label>
<div class="col-md-7 col-sm-8">
<textarea class="form-control o_website_form_input" name="description"
required="">

<t t-esc="request.params.get('description', '')"/>
</textarea>
</div>
</div>
<div class="form-group form-field o_website_form_required">
<label class="col-md-3 col-sm-4 control-label" for="partner_name">Votre Nom
:
</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control o_website_form_input"
name="partner_name" required=""
t-att-value="request.params.get('partner_name', '')"/>
</div>
</div>

<div class="form-group">
<div class="col-md-offset-3 col-sm-offset-4 col-sm-8 col-md-7">
<span class="btn btn-primary btn-lg o_website_form_send">Envoyer</span>
<span id="o_website_form_result"></span>
</div>
</div>
</form>
</section>

</div>
<div class="col-md-4 mb32">
<t t-call="website.company_description"/>
</div>
</div>
</div>
</div>
</t>
</template>

<template id="thankyou">
<t t-call="website.layout">
<div id="wrap">
<div class="oe_structure">
<div class="container">
<h1>Thank you!</h1>
<p>
Your job application has been successfully registered,
we will get back to you soon.
</p>
</div>
<section class="oe_dark">
<div class="container">
<div class="row">
<div class="col-md-12 text-center mt16 mb16">
<a href="/" class="btn btn-primary btn-lg">Continue To Our Website</a>
</div>
</div>
</div>
</section>
</div>
</div>
</t>
</template>



</data>
</odoo>





from odoo import http

class Service_web(http.Controller):
@http.route('/page/services/add', auth='public', website=True)
def index(self, **kw):
Services = http.request.env['association.service'] # dans env on met nom de class
return http.request.render('website_service.add', { # nom de module avant index
'serv': Services.search([])
})

    Ask a Question
    Keep Informed
    1 follower(s)
    About This Community

    This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

    Register
    Odoo Training Center

    Access to our eLearning platform and experience all Odoo Apps through learning videos, use cases and quizzes.

    Test it now