def publish(self, membership, base_uri=None): ''' Publish this report ''' if self.published: raise Exception('This report is already published') # Build xls xls = open(self.build_xls(), 'r') xls_name = '%s_semaine_%d.xls' % (self.user.username, self.week+1) # Context for html context = { 'week_human' : self.week + 1, 'report': self, 'club': membership.club, 'days' : self.get_days_per_date(), 'base_uri' : base_uri, } # Build mail headers = {'Reply-To' : self.user.email,} mb = MailBuilder('mail/report.html') mb.subject = u'Séance de %s : du %s au %s' % (self.user, self.get_date_start(), self.get_date_end()) mb.to = [m.email for m in membership.trainers.all()] mb.cc = [self.user.email] mail = mb.build(context, headers) # Attach Xls & send mail.attach(xls_name, xls.read(), 'application/vnd.ms-excel') mail.send() self.published = True self.save()