✏️ 编辑:suivi_referent_list.py
路径:
/virtual/bigbrother/public_html/edream-c.com/cr/PLUGINS/suivi_referent_list.py
大小:4.14 KB · 修改:2013-09-22 08:35:56 · 权限:0644 · 可写
← 返回目录
👁 查看
⬇ 下载
#!/usr/bin/env python # -*- coding: utf-8 -*- # TOMUSS: The Online Multi User Simple Spreadsheet) # Copyright (C) 2008-2011 Thierry EXCOFFIER, Universite Claude Bernard # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Contact: Thierry.EXCOFFIER@bat710.univ-lyon1.fr import sys import time from .. import plugin from .. import configuration from .. import utilities from .. import referent from .. import inscrits def referents_table_real(): done = {} d = {} for student in referent.student_list(sys.stderr, referent.port(), referent.not_in()).values(): if student.key in done: continue done[student.key] = True p = '' # if student.key in a1: # p += 'L1' # if student.key in a2: # p += 'L2' r = referent.referent(configuration.year_semester[0], configuration.year_semester[1], student.key) if r == None: continue try: firstname, surname, mail = d[r] except KeyError: firstname, surname, mail = inscrits.L_batch.firstname_and_surname_and_mail(r) d[r] = firstname, surname, mail s_surname = student.surname.encode('latin1') s_firstname = student.firstname.title().encode('latin1') yield (p, student.key, s_surname, s_firstname, surname.encode('latin1'), firstname.title().encode('latin1'), mail.encode('latin1')) @utilities.add_a_lock def referents_table(): if time.time() > referents_table.time + 3600: referents_table.cache = [] for i in referents_table_real(): referents_table.cache.append(i) yield i referents_table.time = time.time() else: for i in referents_table.cache: yield i referents_table.time = 0 def referents_csv(server): """Generate the referent list in CSV""" import csv f = server.the_file w = csv.writer(f, delimiter=';') for r in referents_table(): w.writerow(r) def referents_html(server): """Generate the referent list in HTML""" f = server.the_file f.write(server._("MSG_wait_some_minutes")) f.flush() f.write('<table>\n') for r in referents_table(): f.write('<tr><td>' + '</td><td>'.join(r) + '</td></tr>\n') f.write('</table>\n') plugin.Plugin('referents.csv', '/referents.csv', function=referents_csv, authenticated=False, mimetype = 'text/csv; charset=latin1', launch_thread=True, ) plugin.Plugin('referents.xls', '/referents.xls', function=referents_html, # Yes HTML not xls or csv authenticated=False, mimetype = 'application/excel; charset=latin1', launch_thread=True, link=plugin.Link( url="javascript:go_suivi('referents.xls')", where='referents', html_class="verysafe", priority=100, group='roots', ), ) plugin.Plugin('referents.html', '/referents.html', function=referents_html, # Yes HTML not xls or csv mimetype = 'text/html; charset=latin1', authenticated=False, launch_thread=True, link=plugin.Link( url="javascript:go_suivi('referents.html')", where='referents', html_class="verysafe", priority=100, group='roots', ), )
💾 保存
取消
保存为 UTF-8,换行统一为 LF