Hey i am trying to make a custom solution. At ERP end i have a module with both form and line view. For the portal my view is ready and all i have to do is to POST data into one2many fields i know how to do it for simple form but i am confused for my line view. here is my controller
@http.route('/create/evaluation-request', type='http', auth='public', website=True)
def create_evaluation_request(self, **kw):
evaluation = request.env['performance.evaluation']
for key,value in kw.items(): #I used this loop to check values only
print(key,value)#I dont know why this returns only first value of my line
values = {
'emp_self': kw.get('emp_self'),
'remarks': kw.get('remarks'),
}
evaluation.performance_lines.sudo().create(values)
return request.render("gxs_performance_evaluation.evaluation_web_form_message", {})
Here is my Form view Template
<template id="performance_evaluation_record" name="Employee Performance">
<t t-call="portal.portal_layout">
<!-- <t t-set="o_portal_fullwidth_alert" groups="project.group_project_user">-->
<!-- <t t-call="portal.portal_back_in_edit_mode">-->
<!-- <t t-set="backend_url" t-value="'/web#model=project.project&id=%s&view_type=form' % (project.id)"/>-->
<!-- </t>-->
<!-- </t>-->
<t t-call="portal.portal_record_layout">
<t t-set="card_header">
<h5 class="mb-0">
<span class="float-right">
<a class="btn btn-success btn-sm" href="/performance-evaluations">
<i class="fa fa-arrow-left"/>
Back
</a>
</span>
</h5>
</t>
<t t-set="card_body">
<div class="container">
<form role="form" action="/create/evaluation-request/" method="POST">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div style="text-align: center; background-color:#002e5b;">
<h2 style="color:#fde428;">
<b>Performance Evaluation</b>
</h2>
</div>
<br/>
<div class="row" style="text-align: center; width: 100%;">
<strong style="margin-left: 20px">Name:</strong>
<span t-field="performance.employee" style="padding-right: 120px;"/>
<strong>Start Date:</strong>
<span t-field="performance.start_date" style="padding-right: 120px;"/>
<strong>End Date:</strong>
<span t-field="performance.end_date" style="padding-right: 120px;"/>
<strong>Deadline:</strong>
<span style="color:Red;" t-field="performance.deadline"/>
</div>
<br/>
<div style="text-align: center; background-color:#002e5b;">
<h2 style="color:#fde428;">
<b>Key Performance Areas</b>
</h2>
</div>
<table style="width: 100%;">
<thead>
<tr class="active">
<th>Name</th>
<th>Description</th>
<th>Weightage</th>
<th>Employee Rate</th>
<th>Employee Remarks</th>
<!-- <th>Final Rating</th>-->
<!-- <th>Responsible Approver</th>-->
</tr>
</thead>
<t t-foreach="performance.performance_lines" t-as="perform">
<tr>
<td t-if="perform.display_type=='line_section'" colspan="5"
style="background-color:#668cff; text-align: center; color:#fde428;">
<span t-field="perform.name"/>
</td>
<td t-else="perform.display_type!='line_section'">
<span t-field="perform.name"/>
</td>
<td>
<span t-if="perform.display_type!='line_section'"
t-field="perform.kpa_text"/>
</td>
<td>
<span t-if="perform.display_type!='line_section'"
t-field="perform.weightage"/>
</td>
<td>
<input t-if="perform.display_type!='line_section'" type="number"
class="form-control emp_self" name="emp_self"
min="1" max="10"
placeholder="Employee Rating"/>
</td>
<td>
<input t-if="perform.display_type!='line_section'" type="text"
class="form-control remarks" name="remarks"
placeholder="Employee Remarks" widget="text"/>
</td>
</tr>
</t>
</table>
<div class="clearfix oe_login_buttons">
<button type="submit" class="btn btn-success" style="float: right;">Submit</button>
</div>
</form>
</div>
</t>
</t>
</t>
</template>