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

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


아바타
취소