Example #1
0
 def _parse():
     if not xmldoc.xpathEval('//table[@id="milestone_specs"]'):
         xmldoc.freeDoc()
         return
         
     blueprinttable = xmldoc.xpathEval('//table[@id="milestone_specs"]//tbody//tr')
     for row in blueprinttable:
         m = row.xpathEval('td[1]//a')
         assert m
         url = m[0].prop("href")
         title = m[0].prop("title")
         spec = m[0].content
         
         m = row.xpathEval('td[2]//span[not(@class="sortkey")]')
         assert m
         priority = m[0].prop("class")
         
         # is the mentorship-icon used?
         mentorship = bool(row.xpathEval('td[2]//img[@alt="mentoring"]'))
         #add INFORMATIONAL
         
         m = row.xpathEval('td[3]/a')
         if m:
             assignee = user.parse_html_user(m[0])
         else:
             assignee = user(None)
         
         m = row.xpathEval('td[4]//span[not(@class="sortkey")]')
         assert m
         delivery = m[0].prop("class")
         
         yield BPInfo(priority, spec, title, url, None, delivery, assignee, None, mentorship)
Example #2
0
 def parse(self):
     if self.parsed:
         return True
         
     for i in self.xmldoc:
         x = user.parse_html_user(i)
         self.add(x)
         
     self.parsed = True
Example #3
0
def _get_user(xml, path):
    m = xml.xpathEval(path)
    if m:
        return user.parse_html_user(m[0])
    else:
        m = xml.xpathEval("td")
        assert m
        assert "None" in m[0].content
        # in this case this attribute is set to 'None'
        return user(None)
Example #4
0
 def parse(self):
     if self.parsed:
         return True
         
     for i in self.xmldoc:
         m = i.xpathEval("a")
         assert m
         r_user = user.parse_html_user(m[0])
         
         m = i.xpathEval("strong/a")
         assert m
         r_target = user.parse_html_user(m[0])
         
         m = i.xpathEval('div[@style="font-style: italic;"]')
         assert m
         r_text = m[0].content
         
         self.append(_Request(r_user,r_target,r_text))
         
     self.parsed = True
Example #5
0
 def parse(self):
     if self.parsed:
         return True
         
     for i in self.xmldoc:
         m = i.xpathEval("a")
         assert m
         x = user.parse_html_user(m[0])
         
         m = i.xpathEval("img")
         assert m
         if "inessential" in m[0].prop("src"):
             self["inessential"].add(x)
         elif "essential" in m[0].prop("src"):
             self["essential"].add(x)
         else:
             assert None, "unsupported type"
         
     self.parsed = True
Example #6
0
 def _parse():
     if not xmldoc.xpathEval('//table[@id="speclisting"]'):
         xmldoc.freeDoc()
         return
         
     blueprinttable = xmldoc.xpathEval('//table[@id="speclisting"]//tbody//tr')
     for row in blueprinttable:
         m = row.xpathEval('td[1]//span[not(@class="sortkey")]')
         assert m
         priority = m[0].prop("class")
         
         m = row.xpathEval('td[2]//a')
         assert m
         url = m[0].prop("href")
         title = m[0].prop("title")
         spec = m[0].content
         
         mentorship = bool(row.xpathEval('td[2]//img[@alt="mentoring"]'))
         #add INFORMATIONAL
         
         m = row.xpathEval('td[3]//span[not(@class="sortkey")]')
         assert m
         status = m[0].prop("class")
         
         m = row.xpathEval('td[4]//span[not(@class="sortkey")]')
         assert m
         delivery = m[0].prop("class")
         
         m = row.xpathEval('td[5]//a')
         if m:
             assignee = user.parse_html_user(m[0])
         else:
             assignee = user(None)
         
         m = row.xpathEval('td[6]//a')
         # on personal blueprint pages this column does not exist
         if m:
             project = Project(m[0].prop("href"), m[0].content)
         else:
             project = None
         
         yield BPInfo(priority, spec, title, url, status, delivery, assignee, project, mentorship)
Example #7
0
 def _parse():
     bug_table_rows = xmldoc.xpathEval('//table[@id="milestone_bugtasks"]//tbody//tr')
     for row in bug_table_rows:
         x = row.xpathEval('td[1]//span/img')
         parse_error(x, "BugPage.parse_html_milestone_bugpage.importance", xml=row, url=debug_url)
         importance = x[0].prop("alt").strip("()").title()
         x = row.xpathEval('td[2]')
         parse_error(x, "BugPage.parse_html_milestone_bugpage.nr", xml=row, url=debug_url)
         nr = x[0].content
         x = row.xpathEval('td[3]/a')
         parse_error(x, "BugPage.parse_html_milestone_bugpage.url", xml=row, url=debug_url)
         url = x[0].prop("href")
         summary = x[0].content
         x = row.xpathEval('td[5]//a')
         if x:
             usr = user.parse_html_user(x[0])
         else:
             usr = user(None)
         x = row.xpathEval('td[6]/span[2]')
         parse_error(x, "BugPage.parse_html_milestone_bugpage.status", xml=row, url=debug_url)
         status = x[0].content
         x = BugInfo(nr, url, status, importance, summary, None, all_tasks)
         x.assignee = usr
         yield x