예제 #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)