콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
4 답글
9777 화면



I updated the code but it generate error in calling `gen_student_attendance_report` function in ther report

Hint : if i remove the table of `gen_student_attendance_report` function the report print successfully

Here is my error :

except_orm: (u'"gen_student_attendance_report() got multiple values for keyword argument \'context\'" while evaluating\n\'o.gen_student_attendance_report(o.id)\'', (<class 'openerp.addons.base.ir.ir_qweb.QWebException'>, QWebException(ValueError(u'"gen_student_attendance_report() got multiple values for keyword argument \'context\'" while evaluating\n\'o.gen_student_attendance_report(o.id)\'',),), <traceback object at 0x7f3478bd0a28>))

Here is my python code :

from openerp.osv import osv,fields
import time

class fci_attendance_analysis (osv.osv):
_name='fci.attendance.analysis'
_rec_name='student_id'

_columns={
'standard_id':fields.many2one('fci.standard',string='Standard',required=True),
'group_id':fields.many2one('fci.standard.groups',string='Group'),
'date':fields.date('Date Of generation',readonly=True),
'_date':fields.date('Date'),
'student_id':fields.many2one('fci.student',string='Student'),
'number_of_absence': fields.integer( 'Number Of Absence'),
'terms_id': fields.many2one('fci.terms', string='Term',required=True),
'subject_id':fields.many2one('fci.subject',string='Subject',required=True),
'state': fields.selection([('s','by Subject'),('t','By Student')],string='Select Report Type',required=True),
}
_defaults = {
'state': 't',
'date': time.strftime("%Y-%m-%d")
}
def gen_student_attendance_report(self,cr, uid, ids, context=None ):
datas = {}
if context is None:context = {}
noobs_data=[]
data = self.read(cr, uid, ids, ['state','subject_id','student_id'], context=context)
stu= data[0]['student_id']
sub=data[0]['subject_id']
darsh=int(stu[0])
sasa=int(sub[0])
if data[0]['state'] == 't':
cr.execute(
"select DISTINCT ON (s.name) s.name as student_name,d.name as subject_name,attendance_date from fci_attendance_line ,fci_student s,fci_subject d where s.id=%d and d.id=%d and present=False "% (
darsh,sasa))
noobs = cr.dictfetchall()
cr.execute(
"select DISTINCT ON (s.name) s.name as student_name,d.name as subject_name,attendance_date from fci_attendance_line ,fci_student s,fci_subject d where s.id=%d and d.id=%d and present=False "% (
darsh,sasa))
noobs_details = cr.dictfetchall()
for details_ids in noobs_details:
for datae in noobs:
details_ids[datae['student_name']] = str(datae['student_name'])+str(datae['subject_name']) + str(datae['attendance_date'])
noobs_data.append(details_ids)

datas = {
'ids': [],
'model': 'fci.attendance.analysis',
'form': noobs_data[0]
}
return {
'type': 'ir.actions.report.xml',
'report_name': 'FCI_ERP.abcence_report_stu_document',
'datas': datas
}

fci_attendance_analysis()

here is my wizard code :

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="fci_attendance_analysis_form" model="ir.ui.view">
<field name="name">fci.attendance.analysis.form</field>
<field name="model">fci.attendance.analysis</field>
<field name="priority" eval="8"/>
<field name="arch" type="xml">
<form string="Time Table Report" version="7.0">
<header>
<span groups="base.group_user">
<button special="cancel" string="Close" type="object"
icon="terp-dialog-close"/>
<button string="Generate Time Table Report" type="object"
name="gen_student_attendance_report"/>
</span>
</header>
<sheet>
<separator string="Select Teacher/Student" colspan="4"/>
<div>
<group colspan="4" cols="4">
<field name="state"/>
<field name="standard_id"/>
<field name="date"/>
<field name="terms_id"/>
<field name="subject_id"/>
</group>
<group col="4" colspan="4">
<field name="group_id"
attrs="{'required':[('state','=','t')],'invisible':[('state','!=','t')]}"/>
<field name="student_id"
attrs="{'required':[('state','=','t')],'invisible':[('state','!=','t')]}"/>
</group>
</div>
</sheet>
</form>
</field>
</record>

<record model="ir.actions.act_window" id="fci_attendance_analysis_reports_view">
<field name="name">Generate Time Table Report</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">fci.attendance.analysis</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="domain">[]</field>
<field name="context">{}</field>
</record>
<record model="ir.actions.act_window.view" id="fci_attendance_analysis_reports_view_form">
<field name="act_window_id" ref="fci_attendance_analysis_reports_view"/>
<field name="sequence" eval="20"/>
<field name="view_mode">form</field>
<field name="view_id" ref="fci_attendance_analysis_form"/>
</record>
</data>
</openerp>

and here is my report.xml :


<?xml version="1.0" encoding="utf-8"?>
<openerp>

<data>
<template id="abcence_report_stu_document">
<style type="text/css">
table.gridtable {
font-family: verdana,arial,sans-serif;
font-size:14px;
color:#333333;
border-width: 1px;
border-color: #666666;
border-collapse: collapse;
}
table.gridtable th {
border-width: 1px;
padding: 9px;
border-style: solid;
border-color: #666666;
background-color: #dedede;
}
table.gridtable td {
border-width: 1px;
padding: 9px;
border-style: solid;
border-color: #666666;
background-color: #ffffff;
}
</style>

<t t-call="report.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="report.external_layout">
<div class="font">
<div class="page">
<div class="row text-center">
<h2>
<b>
<span t-field='res_company.name'/>
</b>
</h2>
</div>
<para>
<font color="white">......</font>
</para>
<para>
<font color="white">......</font>
</para>
<para>
<font color="white">......</font>
</para>
<div class="row text-center">
<h2>
<strong>
كشف غياب الطالب
<p>
<span t-esc="o.student_id.name"/>
</p>
فى مادة
<p>
<span t-esc="o.subject_id.name"/>
</p>
</strong>
</h2>
</div>
<para>
<font color="white">......</font>
</para>
<para>
<font color="white">......</font>
</para>
<para>
<font color="white">......</font>
</para>
<para>
<font color="white">......</font>
</para>
<table class="gridtable">
<tbody>
<tr>
<th>Student Name</th>
<th>Standard</th>
<th>Group</th>
</tr>
<tr>
<td>
<span t-esc="o.student_id.name"/>
</td>
<td>
<span t-esc="o.standard_id.name"/>
</td>
<td>
<span t-esc="o.group_id.name"/>
</td>
</tr>
</tbody>
</table>
<para>
<font color="white">......</font>
</para>
<para>
<font color="white">......</font>
</para>
<table class="gridtable">
<tbody>
<tr>
<th>Subject Name</th>
<th>Absence Day</th>
</tr>
<tr t-foreach="o.gen_student_attendance_report(datas)" t-as="a">
<td>
<span t-esc="datas.get('student_name')"/>
</td>
<td>
<span t-esc="datas.get('attendance_date') "/>
</td>

</tr>

</tbody>
</table>
<para>
<font color="white">......</font>
</para>
<para>
<font color="white">......</font>
</para>
</div>
</div>
</t>
</t>
</t>
</template>
</data>
</openerp>

and here is my report tag :

<report
string="Student Report Absence"
id="report_Absence_subject"
model="fci.attendance.analysis"
report_type="qweb-pdf"
name="FCI_ERP.abcence_report_stu_document"
file="FCI_ERP.abcence_report_stu_document"/>

 i Hope i find some help :(

아바타
취소
작성자

Any help !!!

베스트 답변

Hello  John carter,

I faced the same issue before, even I asked that question already.

If you are using parser, for report than it create problem, because it passing wrong doc model.

To get exact model you have to override one method and have to expclitly pass few arguments for for qweb report. Click below link for more information.

Click Here


Hope this will helps.


Rgds,

Anil.



아바타
취소
작성자

so what should i do ? where is should add this new class and what is 'report.model'

작성자 베스트 답변

.

아바타
취소
관련 게시물 답글 화면 활동
3
6월 20
5314
0
1월 25
564
1
10월 15
4345
1
2월 21
2147
1
7월 16
3270