Example #1
0
def generate_html_for_revision_list(list_of_title_id_date1_date2_link):
    the_htmls = []
    for title,revid,date_diff,date_for,link in list_of_title_id_date1_date2_link:
        li_html = """
                <li>
                    <input type="checkbox" id="checkbox%s"
                            onchange="update_list();"/>
                    [%s]
                    <a href="%s" onmouseup="$('checkbox%s').checked = true; update_list();">
                        %s (diffed on %s)
                    </a>
                    -- scheduled for %s
                </li>""" % (revid, revid, link, revid, title,\
                        get_formatted_datetime(date_diff),\
                        get_formatted_date(date_for))
                
        the_htmls.append(li_html)
    return "\n".join(the_htmls)
Example #2
0
    def generate_pages_and_index_for_revisions(self, revision_objects):
        output_dir = tempfile.mkdtemp(dir=self.config.tmp_directory)

        index_html = []
        li_list = []
        id_list = []

        total_count = len([x for x in revision_objects if not x.hidden])

        print "Total revisions:", total_count

        for rev_obj in revision_objects:
            if rev_obj.hidden:
                continue

            lines = rev_obj.content.splitlines()
            spans_per_line = [[] for l in lines]

            # TODO: escape string 
            title = rev_obj.document_relative_path
            link = title + "__" + \
                get_formatted_datetime(rev_obj.datetime_diffed_on) + ".html"
            scheduled_date = get_formatted_date(rev_obj.scheduled_date)

            id_list.append(rev_obj.id)

            # that's not very pretty, so TODO just pass rev_obj...
            li_list.append((title,\
                    rev_obj.id,
                    rev_obj.datetime_diffed_on,\
                    rev_obj.scheduled_date,\
                    link))
            
            html = self.formatter.format(rev_obj)

            server_based_code = ''
            if getattr(self.config, 'use_local_server', False):
                server_based_code = """
                        <!--<script type="text/javascript" src="/js/jQuery.min.js"></script>-->
                        <a href="http://localhost:%s/hidereview/?reviewid=%s">Don't show this review again</a>
                        <script type="text/javascript">

                        window.deleteEntry = function() {
                                document.location.href = 'http://localhost:%s/hidereview/?reviewid=%s';
                        }

                        </script>
                        """ % (localserver.SERVER_PORT, rev_obj.id, localserver.SERVER_PORT, rev_obj.id)

            html = apply_revision_content_template(title, html, server_based_code)

            # TODO: error handling
            f = codecs.open(os.path.join(output_dir, link), "w", "utf-8")
            f.write(html)
            f.close()

        index_path = os.path.join(output_dir, "index.html")
        f = open(index_path, "w")
        f.write(apply_revision_list_template(\
                    generate_html_for_revision_list(\
                                li_list),
                    id_list, output_dir))
        f.close()

        print "Finished generation. Index at", index_path
        print "Total revisions:", total_count
        
        return output_dir