Esempio n. 1
0
  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()