{# Copyright (C) 2023 Dirk Stöcker This software is licensed as described in the file COPYING, which you should have received as part of this distribution. The terms are also available at https://trac.edgewall.org/wiki/TracLicense. This software consists of voluntary contributions made by many individuals. For the exact contribution history, see the revision history and logs, available at https://trac.edgewall.org/. #} # extends 'admin.html' # block admintitle ${_("Spam Statistics")} # endblock admintitle #block adminpanel

${_("Spam Filtering: Statistics")}

# if overall['test']:
${_("%(count)d Submissions tested since %(date)s, %(spam)s spam and %(ham)s ham (%(local)s of the tests could be solved local). %(spamerr)d spam and %(hamerr)d ham have been retrained.") % {'count': overall['test'], 'date': format_datetime(overall['time']), 'spam': "%3.1f%%" % (100.0*overall['testspam']/overall['test']), 'ham': "%3.1f%%" % (100.0*overall['testham']/overall['test']), 'local': "%3.1f%%" % (100.0*overall['testint']/overall['test']), 'spamerr': overall['spamerror'], 'hamerr': overall['hamerror'] }}
# else: ${_("No submission statistics yet.")} # endif # for name, data in sorted(strategies.items()): # if data.get('testtotal',0) == 0: # else: # endif # if data.get('trainspamtotal',0) == 0: # else: # endif # if data.get('trainhamtotal',0) == 0: # else: # endif # endfor
${_("Strategy")} ${_("Type")} ${_("Test")} ${_("Train / Verify")} ${_("Errors")}
${_("Spam")} ${_("Ham")} ${_("Spam")} ${_("Ham")}
${_("Total")} ${_("Mean Delay")} ${_("No Result")} ${_("Match")} ${_("Mismatch")} ${_("Match")} ${_("Mismatch")} ${_("Total")} ${_("Right")} ${_("Wrong")} ${_("Total")} ${_("Right")} ${_("Wrong")}
${name}${data['i18type']}${_("No tests yet.")}${data['testtotal']} ${_("%4.2f s") % (data['testtime'])} # if data.get('testempty',0): ${"%3.1f%%" % (100.0*data['testempty']/data['testtotal'])} #endif # if data.get('testspamok',0) ${"%3.1f%%" % (100.0*data['testspamok']/data['testtotal'])} # endif # if data.get('testspamerror',0) ${"%3.1f%%" % (100.0*data['testspamerror']/data['testtotal'])} # endif # if data.get('testhamok',0): ${"%3.1f%%" % (100.0*data['testhamok']/data['testtotal'])} # endif # if data.get('testhamerror',0): ${"%3.1f%%" % (100.0*data['testhamerror']/data['testtotal'])} # endif ${_("No spam yet.")}${data['trainspamtotal']} # if data.get('trainspamok',0): ${"%3.1f%%" % (100.0*data['trainspamok']/data['traintotal'])} # endif # if data.get('trainspamerror',0): ${"%3.1f%%" % (100.0*data['trainspamerror']/data['traintotal'])} # endif ${_("No ham yet.")}${data['trainhamtotal']} # if data.get('trainhamok',0): ${"%3.1f%%" % (100.0*data['trainhamok']/data['traintotal'])} # endif # if data.get('trainhamerror',0): ${"%3.1f%%" % (100.0*data['trainhamerror']/data['traintotal'])} # endif ${data.get('trainerror')}
${jmacros.form_token_input()}
${jmacros.form_token_input()}
# endblock adminpanel