Skip to Content
Menu
This question has been flagged
4 Replies
22580 Views

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
Avatar
Discard

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

Best Answer

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 ''"/>




Avatar
Discard
Author Best Answer

solved thankyou waleed

Avatar
Discard

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

Best 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


Avatar
Discard