fnp
/
librarian.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't show activity counter if it's not adjacent to another activity (PDF)
[librarian.git]
/
librarian
/
pyhtml.py
diff --git
a/librarian/pyhtml.py
b/librarian/pyhtml.py
index
1f1f3df
..
900d068
100644
(file)
--- a/
librarian/pyhtml.py
+++ b/
librarian/pyhtml.py
@@
-28,6
+28,7
@@
class EduModule(Xmill):
def __init__(self, options=None):
super(EduModule, self).__init__(options)
self.activity_counter = 0
def __init__(self, options=None):
super(EduModule, self).__init__(options)
self.activity_counter = 0
+ self.activity_last = None
self.exercise_counter = 0
# text filters
self.exercise_counter = 0
# text filters
@@
-36,7
+37,7
@@
class EduModule(Xmill):
txt = txt.replace("/\n", "<br/>\n")
return txt
self.register_text_filter(functions.substitute_entities)
txt = txt.replace("/\n", "<br/>\n")
return txt
self.register_text_filter(functions.substitute_entities)
- self.register_text_filter(swap_endlines)
+ self.register_
escaped_
text_filter(swap_endlines)
@tagged('div', 'stanza')
def handle_strofa(self, element):
@tagged('div', 'stanza')
def handle_strofa(self, element):
@@
-58,7
+59,7
@@
class EduModule(Xmill):
handle_podtytul = tag("span", "subtitle")
handle_naglowek_akt = handle_naglowek_czesc = handle_srodtytul = tag("h2")
handle_naglowek_scena = tag('h2')
handle_podtytul = tag("span", "subtitle")
handle_naglowek_akt = handle_naglowek_czesc = handle_srodtytul = tag("h2")
handle_naglowek_scena = tag('h2')
- handle_naglowek_osoba =
handle_naglowek_podrozdzial =
tag('h3')
+ handle_naglowek_osoba = tag('h3')
handle_akap = handle_akap_dialog = handle_akap_cd = tag('p', 'paragraph')
handle_wyroznienie = tag('em')
handle_akap = handle_akap_dialog = handle_akap_cd = tag('p', 'paragraph')
handle_wyroznienie = tag('em')
@@
-82,6
+83,10
@@
class EduModule(Xmill):
pre, post = tag_open_close("h2", id=naglowek_to_anchor(element))
return return_to_top + pre, post
pre, post = tag_open_close("h2", id=naglowek_to_anchor(element))
return return_to_top + pre, post
+ def handle_naglowek_podrozdzial(self, element):
+ self.activity_counter = 0
+ return tag('h3')(self, element)
+
def handle_uwaga(self, _e):
return None
def handle_uwaga(self, _e):
return None
@@
-93,7
+98,10
@@
class EduModule(Xmill):
}
submill = EduModule(dict(self.options.items() + {'sub_gen': True}.items()))
}
submill = EduModule(dict(self.options.items() + {'sub_gen': True}.items()))
- opis = submill.generate(element.xpath('opis')[0])
+ if element.xpath('opis'):
+ opis = submill.generate(element.xpath('opis')[0])
+ else:
+ opis = ''
n = element.xpath('wskazowki')
if n: wskazowki = submill.generate(n[0])
n = element.xpath('wskazowki')
if n: wskazowki = submill.generate(n[0])
@@
-110,10
+118,17
@@
class EduModule(Xmill):
counter = self.activity_counter
counter = self.activity_counter
+ if element.getnext().tag == 'aktywnosc' or self.activity_last.getnext() == element:
+ counter_html = """<span class="act_counter">%(counter)d.</span>""" % locals()
+ else:
+ counter_html = ''
+
+ self.activity_last = element
+
return u"""
<div class="activity">
<div class="text">
return u"""
<div class="activity">
<div class="text">
- <span class="act_counter">%(counter)d.</span>
+ %(counter_html)s
%(opis)s""" % locals(), \
u"""%(wskazowki)s
</div>
%(opis)s""" % locals(), \
u"""%(wskazowki)s
</div>
@@
-396,13
+411,13
@@
class Wybor(Exercise):
if not pytania:
pytania = [element]
for p in pytania:
if not pytania:
pytania = [element]
for p in pytania:
- solutions = re.split(r"[, ]+", p.attrib
['rozw']
)
+ solutions = re.split(r"[, ]+", p.attrib
.get('rozw', '')
)
if len(solutions) != 1:
is_single_choice = False
break
choices = p.xpath(".//*[@nazwa]")
uniq = set()
if len(solutions) != 1:
is_single_choice = False
break
choices = p.xpath(".//*[@nazwa]")
uniq = set()
- for n in choices: uniq.add(n.attrib
['nazwa']
)
+ for n in choices: uniq.add(n.attrib
.get('nazwa', '')
)
if len(choices) != len(uniq):
is_single_choice = False
break
if len(choices) != len(uniq):
is_single_choice = False
break
@@
-496,7
+511,7
@@
class Zastap(Luki):
return question.xpath(".//zastap")
def solution_html(self, piece):
return question.xpath(".//zastap")
def solution_html(self, piece):
- return piece.attrib
['rozw']
+ return piece.attrib
.get('rozw', '')
def handle_zastap(self, element):
self.piece_counter += 1
def handle_zastap(self, element):
self.piece_counter += 1
@@
-551,16
+566,16
@@
class Przyporzadkuj(Exercise):
if self.options['subject']:
self.piece_counter += 1
if self.options['handles']:
if self.options['subject']:
self.piece_counter += 1
if self.options['handles']:
- return '<li><span data-solution="%s" data-no="%s" class="question-piece draggable handle add-li">%s</span>' % (element.attrib
['rozw']
, self.piece_counter, self.piece_counter), '</li>'
+ return '<li><span data-solution="%s" data-no="%s" class="question-piece draggable handle add-li">%s</span>' % (element.attrib
.get('rozw', '')
, self.piece_counter, self.piece_counter), '</li>'
else:
else:
- return '<li data-solution="%s" data-no="%s" class="question-piece draggable">' % (element.attrib
['rozw']
, self.piece_counter), '</li>'
+ return '<li data-solution="%s" data-no="%s" class="question-piece draggable">' % (element.attrib
.get('rozw', '')
, self.piece_counter), '</li>'
elif self.options['predicate']:
if self.options['min']:
placeholders = u'<li class="placeholder"></li>' * self.options['min']
else:
placeholders = u'<li class="placeholder multiple"></li>'
elif self.options['predicate']:
if self.options['min']:
placeholders = u'<li class="placeholder"></li>' * self.options['min']
else:
placeholders = u'<li class="placeholder multiple"></li>'
- return '<li data-predicate="%
(nazwa)s">' % element.attrib
, '<ul class="subjects">' + placeholders + '</ul></li>'
+ return '<li data-predicate="%
s">' % element.attrib.get('nazwa', '')
, '<ul class="subjects">' + placeholders + '</ul></li>'
else:
return super(Przyporzadkuj, self).handle_punkt(element)
else:
return super(Przyporzadkuj, self).handle_punkt(element)