utf stuff, fixing toggling

This commit is contained in:
q
2016-07-04 10:04:27 +03:00
parent 20d5e087cb
commit 44a6ab2d27
3 changed files with 28 additions and 22 deletions

18
shop.py
View File

@@ -120,8 +120,8 @@ def show_shop(shopid):
data_dir=os.path.join(DATADIR, get_username(row[2])) data_dir=os.path.join(DATADIR, get_username(row[2]))
data_file=os.path.join(data_dir, row[1]+".md") data_file=os.path.join(data_dir, row[1]+".md")
entries=[] entries=[]
content=open(data_file, 'rt').read() content=open(data_file, 'rt').read().decode('utf-8')
for i,row in enumerate(open( data_file, 'rt').read().split("\n")): for i,row in enumerate(open( data_file, 'rt').read().decode('utf-8').split("\n")):
# any parsing magick would be here # any parsing magick would be here
if row=="": if row=="":
continue continue
@@ -130,7 +130,7 @@ def show_shop(shopid):
if "[ ]" in row or "[x]" in row: if "[ ]" in row or "[x]" in row:
icon=u"\u2714" icon=u"\u2714"
extra_class="" extra_class=""
row=urlify(row) row=urlify(row).encode('ascii', 'xmlcharrefreplace')
entries.append( dict(row=i, text=row, icon=icon, extra_class=extra_class) ) entries.append( dict(row=i, text=row, icon=icon, extra_class=extra_class) )
shared_to=[] shared_to=[]
cur = g.db.execute('select * from shares') cur = g.db.execute('select * from shares')
@@ -176,7 +176,7 @@ def add_items():
if row.strip()=="": if row.strip()=="":
continue continue
count+=1 count+=1
contents_file.write("[ ] %s\n"%row.strip()) contents_file.write("[ ] %s\n"%row.strip().encode('utf-8'))
contents_file.close() contents_file.close()
flash('Added %d items'%(count)) flash('Added %d items'%(count))
return redirect(url_for('show_shop',shopid=shopid)) return redirect(url_for('show_shop',shopid=shopid))
@@ -195,7 +195,7 @@ def edit_md():
copyfile(data_file, backup) copyfile(data_file, backup)
contents_file=open(data_file,'wt') contents_file=open(data_file,'wt')
for row in request.form['edit_md'].split("\n"): for row in request.form['edit_md'].split("\n"):
contents_file.write("%s\n"%row) contents_file.write("%s\n"%row.encode('utf-8'))
contents_file.close() contents_file.close()
flash('Saved new file.') flash('Saved new file.')
return redirect(url_for('show_shop',shopid=shopid)) return redirect(url_for('show_shop',shopid=shopid))
@@ -218,7 +218,7 @@ def toggle_item():
data_dir=os.path.join(DATADIR, ownername) data_dir=os.path.join(DATADIR, ownername)
data_file=os.path.join(data_dir, shopname+".md") data_file=os.path.join(data_dir, shopname+".md")
contents_file=open(data_file,'rt') contents_file=open(data_file,'rt')
contents=contents_file.read().split("\n") contents=contents_file.read().decode('utf-8').split("\n")
contents_file.close() contents_file.close()
changed=False changed=False
for i,row in enumerate(contents): for i,row in enumerate(contents):
@@ -232,7 +232,7 @@ def toggle_item():
break break
if changed: if changed:
contents_file=open(data_file,'wt') contents_file=open(data_file,'wt')
contents_file.write("\n".join(contents)) contents_file.write("\n".join(contents).encode('utf-8'))
contents_file.close() contents_file.close()
#~ flash('successfully posted %s (%d)'%(row,req_row)) #~ flash('successfully posted %s (%d)'%(row,req_row))
return redirect(url_for('show_shop',shopid=shopid)) return redirect(url_for('show_shop',shopid=shopid))
@@ -250,14 +250,14 @@ def remove_toggled():
contents_file=open(data_file,'rt') contents_file=open(data_file,'rt')
contents=[] contents=[]
changed=False changed=False
for i,row in enumerate(contents_file.read().split("\n")): for i,row in enumerate(contents_file.read().decode('utf-8').split("\n")):
if '[x]' not in row: if '[x]' not in row:
contents.append(row) contents.append(row)
changed=True changed=True
contents_file.close() contents_file.close()
if changed: if changed:
contents_file=open(data_file,'wt') contents_file=open(data_file,'wt')
contents_file.write("\n".join(contents)) contents_file.write("\n".join(contents).encode('utf-8'))
contents_file.close() contents_file.close()
#~ flash('successfully posted %s (%d)'%(row,req_row)) #~ flash('successfully posted %s (%d)'%(row,req_row))
return redirect(url_for('show_shop',shopid=shopid)) return redirect(url_for('show_shop',shopid=shopid))

View File

@@ -14,11 +14,17 @@ function reload() {
} }
function hidetoggle(name,button) { function hidetoggle(name,button) {
if (document.getElementById(name).style.display=='inline-block') {
document.getElementById(name).style.display='none'; document.getElementById(name).style.display='none';
document.getElementById(button).onclick=function(){showtoggle(name,button);}; } else {
}
function showtoggle(name,button) {
document.getElementById(name).style.display='inline-block'; document.getElementById(name).style.display='inline-block';
document.getElementById(button).onclick=function(){hidetoggle(name,button);}; }
var allElements = document.getElementsByTagName("*");
for (var i = 0, n = allElements.length; i < n; ++i) {
var el = allElements[i];
if (el.id) {
if ((el.id.startsWith("disp_")) && (el.id!=name)) {
document.getElementById(el.id).style.display='none';
}}
}
} }

View File

@@ -11,24 +11,24 @@
</form> </form>
</div> </div>
<h2>Add items:</h2> <h2 id="h2_add" onclick="hidetoggle('disp_add','h2_add')" class=pointer>Add items:</h2>
<form name="area_add" action="{{ url_for('add_items') }}" method=post class=add-entry> <form id="disp_add" name="area_add" action="{{ url_for('add_items') }}" method=post class=add-entry>
<dl> <dl>
<dt><textarea cols=40 rows=1 id=add_md name=add_md onkeyup="growTextarea('add_md')"></textarea><br><input type=hidden name=shopid value={{ shopid }}><input class=submit type=submit value=Add> <dt><textarea cols=40 rows=1 id=add_md name=add_md onkeyup="growTextarea('add_md')"></textarea><br><input type=hidden name=shopid value={{ shopid }}><input class=submit type=submit value=Add>
</dl> </dl>
</form> </form>
<h2 id="h2_remove_toggled" onclick="showtoggle('disp_remove_toggled','h2_remove_toggled')" class=pointer>Remove ticked:</h2> <h2 id="h2_remove_toggled" onclick="hidetoggle('disp_remove_toggled','h2_remove_toggled')" class=pointer>Remove ticked:</h2>
<form id=disp_remove_toggled class=hidden action="{{ url_for('remove_toggled') }}" method=post class=add-entry> <form id=disp_remove_toggled class=hidden action="{{ url_for('remove_toggled') }}" method=post class=add-entry>
<dl><input type=hidden name=shopid value={{ shopid }}><input class=submit type=submit value=Remove> <dl><input type=hidden name=shopid value={{ shopid }}><input class=submit type=submit value=Remove>
</dl></form> </dl></form>
<h2 id="h2_edit" onclick="showtoggle('disp_edit','h2_edit');growTextarea('edit_md');" class=pointer>Edit items:</h2> <h2 id="h2_edit" onclick="hidetoggle('disp_edit','h2_edit');growTextarea('edit_md');" class=pointer>Edit items:</h2>
<form id="disp_edit" class=hidden name="area_edit" action="{{ url_for('edit_md') }}" method=post class=add-entry> <form id="disp_edit" class=hidden name="area_edit" action="{{ url_for('edit_md') }}" method=post class=add-entry>
<dl> <dl>
<dt><textarea cols=40 rows=5 id=edit_md name=edit_md onkeyup="growTextarea('edit_md')">{{ content }}</textarea><br> <dt><textarea cols=40 rows=5 id=edit_md name=edit_md onkeyup="growTextarea('edit_md')">{{ content }}</textarea><br>
<input type=hidden name=shopid value={{ shopid }}><input class=submit type=submit value=Edit onclick="return confirm('Do you really want to replace content?');" > <input type=hidden name=shopid value={{ shopid }}><input class=submit type=submit value=Edit onclick="return confirm('Do you really want to replace content?');" >
</dl> </dl>
</form> </form>
<h2 id="h2_share" onclick="showtoggle('disp_share','h2_share')" class=pointer>Share shop:</h2> <h2 id="h2_share" onclick="hidetoggle('disp_share','h2_share')" class=pointer>Share shop:</h2>
<div class=hidden id=disp_share> <div class=hidden id=disp_share>
<form action="{{ url_for('remove_share') }}" method=post class=toggle-item> <form action="{{ url_for('remove_share') }}" method=post class=toggle-item>
<input type=hidden name=shopid value="{{ shopid }}" > <input type=hidden name=shopid value="{{ shopid }}" >
@@ -44,7 +44,7 @@
</dl> </dl>
</form> </form>
</div> </div>
<h2 id="h2_delete" onclick="showtoggle('disp_delete','h2_delete')" class=pointer>Delete shop:</h2> <h2 id="h2_delete" onclick="hidetoggle('disp_delete','h2_delete')" class=pointer>Delete shop:</h2>
<form id="disp_delete" class=hidden action="{{ url_for('remove_shop') }}" method=post class=add-entry> <form id="disp_delete" class=hidden action="{{ url_for('remove_shop') }}" method=post class=add-entry>
<dl><input type=hidden name=shopid value={{ shopid }}><input class=submit type=submit value=Remove onclick="return confirm('Do you really want to remove shop {{ shop }}?');"> <dl><input type=hidden name=shopid value={{ shopid }}><input class=submit type=submit value=Remove onclick="return confirm('Do you really want to remove shop {{ shop }}?');">
</dl></form> </dl></form>