跳至内容
菜单
此问题已终结
4 回复
23831 查看

Error when compiling AST
SyntaxError: unexpected EOF while parsing (<unknown>, line 1)
Template: 1013
Path: /templates/t/t/t/div/div/t/t/t/table[2]/tbody/t/t/t/t/tr/td[3]/span
Node: <span t-raw="'%s' % line.marks if line.marks ''"/>
assignment_report.xml file


<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="report_assignment_report">
<style>
.font{
font-size:14px;
font-family:"Helvetica"
}
@page{
margin-top:1%;
size: A4;
}
</style>
<t t-call="web.html_container">
<t t-call="web.external_layout">
<div class="font">
<div class="page">
<t t-foreach="get_objects(docs)" t-as="objs">
<t t-foreach="objs" t-as="obj">
<div class="text-center">
<h2>
Assignment Report

</h2>
</div>
<br></br>
<br></br>
<t>

<table width="100%">
<tbody>

<tr>
<td
width="17%">
<b>Teacher
</b>
</td>
<td>
:
<span
t-raw="'%s' % obj.faculty_id.name if obj.faculty_id.name else ''"/>
</td>
<td
width="15%">
<b>Subject
</b>
</td>
<td>
:
<span
t-raw="'%s' % obj.subject_id.name if obj.subject_id.name else ''"/>
</td>
</tr>
</tbody>
</table>
<br></br>
<br></br>

<table class="table table-bordered" style="width:100%; table-layout: fixed">
<thead>
<th
class="text-center">SNO
</th>
<th
class="text-center">Name of Student
</th>
<th
class="text-center">CW

</th>
<th
class="text-center">HW

</th>
<th
class="text-center">PROJECT

</th>

<th
class="text-center">QUIZ1

</th>
<th
class="text-center">QUIZ2

</th>
<th
class="text-center">QUIZ3

</th>
<th
class="text-center">UT

</th>
<th
class="text-center">FINAL

</th>
</thead>
<tbody>
<t t-foreach="get_objects(docs)" t-as="objs">
<t t-foreach="objs" t-as="obj">
<t t-foreach="get_lines(obj)" t-as="lines">

<t t-foreach ="lines" t-as = "line" >

<tr>

<td class="text-center">
<span t-esc="line_index+1"/>
</td>
<td class="text-left">
<span t-raw="'%s' % line.student_id.name if line.student_id.name else ''"/>
<span t-raw="'%s' % line.assignment_id.assignment_type_id.name if line.assignment_id.assignment_type_id.name else ''"/>
</td>

<td class="text-right" t-if="line.assignment_id.assignment_type_id.name == 'Assignment-1' ">
<span t-raw="'%s' % line.marks if line.marks ''"/>
</td>

<td
class="text-right" t-if="lines.assignment_id.assignment_type_id.name == 'Assignment-2' ">
<span
t-raw="'%s' % Assignment_1(line) if Assignment_1(line) else ''"/>
</td>


<td class="text-right" t-if="obj.assignment_id.assignment_type_id.name == 'Assignment-3' ">
<span t-raw="'%s' % Assignment_2(obj) if Assignment_2(obj) else ''"/>
</td>




<td class="text-right" t-if="lines.assignment_type_id == 'Assignment-4' ">
<span
t-raw="'%s' % result.marks if result.marks else ''"/>
</td>
<td class="text-right" t-if="lines.assignment_type_id == 'Assignment-5' ">
<span
t-raw="'%s' % result.marks if result.marks else ''"/>
</td>
<td
class="text-right" t-if="lines.assignment_type_id == 'Assignment-6' ">
<span
t-raw="'%s' % result.marks if result.marks else ''"/>
</td>
<td
class="text-right" t-if="lines.assignment_type_id == 'Assignment-7' ">
<span
t-raw="'%s' % result.marks if result.marks else ''"/>
</td>
<td class="text-right" >
<span
t-raw="'%s' % get_total(get_lines(obj)) if get_total(get_lines(obj)) else ''"/>
</td>

</tr>
</t>
</t>
</t>

</t>
</tbody>
</table>
<br></br>


<br></br>


</t>
<p style="page-break-after: always;"></p>
</t>
</t>
</div>
</div>
</t>
</t>
</template>
</data>
</odoo>


assignment_report.py file



#import time
from odoo import models, api, fields


class ReportAssignmentReport(models.AbstractModel):
_name = "report.openeducat_assignment.report_assignment_report"


def get_objects(self, records):
obj = []
for object in records:
obj.extend(object)
return obj

def get_lines(self, obj):
lines = []
for line in obj.assignment_sub_line:
lines.extend(line)
return lines

def get_date(self, date):
date1 = fields.Date.to_date(date)
return str(date1.month) + ' / ' + str(date1.year)

def get_total(self, assignment_sub_line):
total = [x.student_id.marks for x in assignment_sub_line]
return sum(total)

def Assignment_1(self, lines):
cw = []
for line in lines:
if line.assignment_type_id.name == 'Assignment_1':
marks = [x.marks for x in line]
cw.extend(marks)
return cw

def Assignment_2(self, lines):
hw = []
for line in lines:
if line.assignment_type_id.name == 'Assignment_2':
marks = [x.marks for x in line]
hw.extend(marks)
return hw

@api.model
def _get_report_values(self, docids, data=None):
docs = self.env['op.assignment'].browse(docids)
docargs = {
'doc_model': 'op.assignment',
'doc_ids': self.ids,
'docs': docs,
'time': time,
'get_objects': self.get_objects,
'get_lines': self.get_lines,
'get_date': self.get_date,
'get_total': self.get_total,
'Assignment_1': self.Assignment_1,
'Assignment_2': self.Assignment_2,
}
return docargs

i am not able to find solution can anybody please tell me solution
形象
丢弃

Try using : t-if in given node error or assign '=' sign in statement and check again.

最佳答案

Hi, the below span in your code is no closed

<span t-raw="'%s' % line.assignment_id.assignment_type_id.name if line.assignment_id.assignment_type_id.name 
It should be:
<span t-raw="'%s' % line.assignment_id.assignment_type_id.name if line.assignment_id.assignment_type_id.name/> 


And the below one missing else: 


<span t-raw="'%s' % line.marks if line.marks ''"/>




形象
丢弃
编写者 最佳答案

solved thankyou waleed

形象
丢弃

Please do upvote and mark as answered, if you want to thank for help. It is unnecessary and useless (Karma!) to post an answer.

最佳答案

The SyntaxError: unexpected EOF while parsing means that the end of your source code was reached before all code blocks were completed. A Python code block starts with a statement like for i in range(100): and requires at least one line afterwards that contains code that should be in it.

Also, this can simply mean you are missing or have too many parenthesis. For example this has too many, and will result in unexpected EOF.

http://net-informations.com/python/pro/xml.htm


形象
丢弃