示例#1
0
 def begin_project (self, project):
     fix_dates(project)
     load_note_attribs (project)
     if project.date_due != None or project.date_to_start != None:
         fix_dates(project)
         load_note_attribs (project)
         Formatter.begin_project(self, project)
示例#2
0
    def __init__ (self, out, template, time_control_default):
        Formatter.__init__(self, out, template)
        self.current_item = None
        self.time_control_default = time_control_default

        # Start and due dates are formated differently for all day tasks, need different types
        template.attrib_map_builder.type_fns['ics.date_due'] = lambda x: format_date(self.current_item, x, True)
        template.attrib_map_builder.type_fns['ics.date_to_start'] = lambda x: format_date(self.current_item, x, False)
        template.attrib_map_builder.type_fns['ics.note'] = lambda x: '\\r'.join(x.get_note_lines ())
示例#3
0
 def begin_context (self, context):
     if self.last_line_was_text:
         print >> self.out
     print >>self.out, ('#' * (self.header_depth+1)),
     Formatter.begin_context(self, context)
     print >>self.out
     self.depth = 0
     self.header_depth+=1
     self.last_line_was_text = False
示例#4
0
 def begin_context(self, context):
     is_output = 'ContextStart' in self.template.nodes
     if self.last_line_was_text and is_output:
         print >> self.out
         self.last_line_was_text = False
     Formatter.begin_context(self, context)
     if is_output:
         print >> self.out
     self.depth = 0
     self.header_depth += 1
示例#5
0
 def begin_folder (self, folder):
     is_output = 'FolderStart' in self.template.nodes
     if self.last_line_was_text and is_output:
         print >> self.out
         self.last_line_was_text = False
     Formatter.begin_folder(self, folder)
     if is_output:
         print >>self.out
     self.depth = 0
     self.header_depth+=1
示例#6
0
 def begin_folder(self, folder):
     is_output = 'FolderStart' in self.template.nodes
     if self.last_line_was_text and is_output:
         print >> self.out
         self.last_line_was_text = False
     Formatter.begin_folder(self, folder)
     if is_output:
         print >> self.out
     self.depth = 0
     self.header_depth += 1
示例#7
0
 def begin_context (self, context):
     is_output = 'ContextStart' in self.template.nodes
     if self.last_line_was_text and is_output:
         print >> self.out
         self.last_line_was_text = False
     Formatter.begin_context(self, context)
     if is_output:
         print >>self.out
     self.depth = 0
     self.header_depth+=1
示例#8
0
 def __init__ (self, out, template):
     attrib_conversions = {
                   'name'           : lambda x: remove_trailing_colon(x),
                   'link'           : lambda x: x,
                   'status'         : lambda x: x,
                   'flagged'        : lambda x: str(x) if x else None,
                   'context'        : lambda x: strip_brackets(''.join (x.name.split ())),
                   'project'        : lambda x: strip_brackets(''.join (x.name.split ())),
                   'date_to_start'  : lambda x: x.strftime(template.date_format),
                   'date_due'       : lambda x: x.strftime(template.date_format),
                   'date_completed' : lambda x: x.strftime(template.date_format),
                   'note'           : lambda x: ''.join([line+'\n' for line in x.get_note_lines ()])
                   }
     Formatter.__init__(self, out, template, attrib_conversions=attrib_conversions)
示例#9
0
 def __init__ (self, out, template):
     attrib_conversions = {
                   'id'             : lambda x: escape(x),
                   'name'           : lambda x: escape(x),
                   'link'           : lambda x: x,
                   'status'         : lambda x: x,
                   'flagged'        : lambda x: str(x) if x else None,
                   'context'        : lambda x: escape(''.join (x.name.split ())),
                   'project'        : lambda x: escape(''.join (x.name.split ())),
                   'date_to_start'  : lambda x: x.strftime(template.date_format),
                   'date_due'       : lambda x: x.strftime(template.date_format),
                   'date_completed' : lambda x: x.strftime(template.date_format),
                   'note'           : lambda x: format_note (x.get_note_lines ())
                   }
     Formatter.__init__(self, out, template, attrib_conversions = attrib_conversions)
示例#10
0
 def __init__ (self, out, template):
     self.current_item = None
     attrib_conversions = {
                   'id'             : lambda x: x,
                   'name'           : lambda x: x,
                   'link'           : lambda x: x,
                   'status'         : lambda x: x,
                   'flagged'        : lambda x: str(x) if x else None,
                   'context'        : lambda x: x.name,
                   'project'        : lambda x: x.name,
                   'date_to_start'  : lambda x: format_date(self.current_item,x, False),
                   'date_due'       : lambda x: format_date(self.current_item, x, True),
                   'date_completed' : lambda x: x.strftime(DATE_FORMAT_LONG),
                   'note'           : lambda x: '\\r'.join(x.get_note_lines ())
                   }
     Formatter.__init__(self, out, template, attrib_conversions = attrib_conversions)
示例#11
0
def generate (out, root_project, root_context, project_mode, template_dir, type_config):
    subject = root_project if project_mode else root_context
    template = load_template (template_dir, type_config['template'])
    
    template.attrib_map_builder.type_fns['html.string'] = lambda x:  escape (x)
    template.attrib_map_builder.type_fns['html.note'] = lambda x: ''.join([line+'<br>' for line in x.get_note_lines ()])

    visitor = Formatter (out, template)
    format_document (subject, visitor, project_mode)
示例#12
0
def generate(out, root_project, root_context, project_mode, template_dir,
             type_config):
    subject = root_project if project_mode else root_context
    template = load_template(template_dir, type_config['template'])

    template.attrib_map_builder.type_fns[
        'taskpaper.tag'] = lambda x: strip_brackets(''.join(x.split()))
    template.attrib_map_builder.type_fns[
        'taskpaper.title'] = lambda x: remove_trailing_colon(x)

    visitor = Formatter(out, template)
    format_document(subject, visitor, project_mode)
示例#13
0
 def __init__ (self, out, template):
     self.current_item = None
     Formatter.__init__(self, out, template)
     
     template.attrib_map_builder.type_fns['ics.date'] = lambda x: format_date(self.current_item, x, True)
     template.attrib_map_builder.type_fns['ics.note'] = lambda x: '\\r'.join(x.get_note_lines ())
示例#14
0
 def begin_any (self, item):
     Formatter.begin_any(self, item)
     self.current_item = item
示例#15
0
 def begin_task (self, task):
     if task.date_due != None or task.date_to_start != None:
         fix_dates(task)
         load_note_attribs (task, self.time_control_default)
         Formatter.begin_task(self, task)
示例#16
0
 def end_task (self, task):
     if task.date_due != None or task.date_to_start != None:
         Formatter.end_task(self, task)
示例#17
0
 def end_project (self, project):
     self.header_depth-=1
     Formatter.end_project(self, project)
示例#18
0
 def end_task (self,task):
     Formatter.end_task(self, task)
     self.last_line_was_text = True
示例#19
0
 def end_task(self, task):
     Formatter.end_task(self, task)
     self.last_line_was_text = True
示例#20
0
 def begin_any (self, item):
     Formatter.begin_any(self, item)
     self.current_item = item
示例#21
0
 def begin_project (self, project):
     if project.date_due != None or project.date_to_start != None:
         fix_dates(project)
         load_note_attribs (project, self.time_control_default)
         Formatter.begin_project(self, project)
示例#22
0
 def __init__(self, out, template):
     Formatter.__init__(self, out, template)
     self.header_depth = 0
     self.depth = 0
     self.out = out
     self.last_line_was_text = False
示例#23
0
 def end_task (self, task):
     if task.date_due != None or task.date_to_start != None:
         Formatter.end_task(self, task)
示例#24
0
 def end_project (self, project):
     if project.date_due != None or project.date_to_start != None:
         Formatter.end_project(self, project)
示例#25
0
 def begin_task (self, task):
     if task.date_due != None or task.date_to_start != None:
         fix_dates(task)
         load_note_attribs (task)
         Formatter.begin_task(self, task)
示例#26
0
 def handle_note (self, item):
     if item.note != None and 'NoteLine' in self.template.nodes:
         if item.type == PROJECT:
             print >>self.out
         Formatter.handle_note (self, item)
示例#27
0
 def __init__ (self, out, template):
     Formatter.__init__(self, out, template)
     self.header_depth = 0
     self.depth = 0
     self.out = out
     self.last_line_was_text = False
示例#28
0
def generate (out, root_project, root_context, project_mode, template_dir, type_config):
    subject = root_project if project_mode else root_context
    template = load_template (template_dir, type_config['template'])
    visitor = Formatter (out, template)
    format_document (subject, visitor, project_mode)
示例#29
0
 def end_context(self, context):
     self.header_depth -= 1
     Formatter.end_context(self, context)
示例#30
0
 def end_project (self, project):
     if project.date_due != None or project.date_to_start != None:
         Formatter.end_project(self, project)
示例#31
0
 def end_context (self, context):
     self.header_depth-=1
     Formatter.end_context(self, context)
示例#32
0
 def end_project(self, project):
     self.header_depth -= 1
     Formatter.end_project(self, project)
示例#33
0
 def end_folder (self, folder):
     self.header_depth-=1
     Formatter.end_folder(self, folder)
示例#34
0
 def end_folder(self, folder):
     self.header_depth -= 1
     Formatter.end_folder(self, folder)
示例#35
0
 def __init__ (self, out, template):
     Formatter.__init__(self, out, template)
示例#36
0
 def handle_note(self, item):
     if item.note != None and 'NoteLine' in self.template.nodes:
         if item.type == PROJECT:
             print >> self.out
         Formatter.handle_note(self, item)