def get_report(self): if not self.task or not self.firm: return False if not self.type or not self.type['meta']: return False if not self.interval or not self.interval['meta'] or not self.interval['search']: return False report = Report() report.firm_id = self.firm.id report.period = self.interval['meta'] report.person_id = self.get_person_id() report_query_name = "%s_query" % self.type['meta'] if report_query_name not in Report.__dict__: return False return getattr(report, report_query_name)(self.interval['search']).all()
def get_interval_dict(self): result = {} if not self.task: return None result['meta'] = ReportStack().get_interval_meta(self.task.interval) result['templ_name'] = ReportStack().get_sender_interval_name( self.task.interval) result['date'] = datetime.now() - timedelta(1) result['search'] = date_helper.get_date_interval( result['date'], result['meta']) full_format = '%Y-%m-%d %H:%M:%S' simple_format = '%Y-%m-%d' if self.task.interval == ReportStack.INTERVAL_ONCE: details = self.task.details if details and 'period' in details: details = self.task.decode_field(details) interval = details['period'] try: result['search'] = ( date_helper.to_utc( datetime.strptime(interval['start'], full_format), app.config['TZ']), date_helper.to_utc( datetime.strptime(interval['end'], full_format), app.config['TZ'])) except: result['search'] = ( date_helper.to_utc( datetime.strptime(interval['start'], simple_format), app.config['TZ']), date_helper.to_utc( datetime.strptime(interval['end'], simple_format), app.config['TZ'])) result['date'] = result['search'] report = Report() report.period = result['meta'] result['templ_interval'] = report.format_search_date(result['date']) return result