I suggest to add following code in order to enhance the fields for substitution in templates :
In def add_headers() add the two "#SUBJECT" rows as following :
extra_content = self.get_extracontent(req)
extra_content = extra_content.replace('#TITLE', title)
extra_content = extra_content.replace('#VERSION', version)
extra_content = extra_content.replace('#DATE', date)
extra_content = extra_content.replace('#SUBJECT', subject)
extra_content = extra_content.replace('#USER', req.remote_user)
if book:
frontpage = self.get_frontpage(req)
frontpage = frontpage.replace('#TITLE', title)
frontpage = frontpage.replace('#VERSION', version)
frontpage = frontpage.replace('#DATE', date)
frontpage = frontpage.replace('#SUBJECT', subject)
frontpage = frontpage.replace('#USER', req.remote_user)