bbs_w_set.py 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. from .tool.func import *
  2. def bbs_w_set(bbs_num = ''):
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. curs.execute(db_change('select set_data from bbs_set where set_id = ? and set_name = "bbs_name"'), [bbs_num])
  6. db_data = curs.fetchall()
  7. if not db_data:
  8. return redirect(conn, '/bbs/main')
  9. else:
  10. bbs_name = db_data[0][0]
  11. bbs_num_str = str(bbs_num)
  12. i_list = ['bbs_acl', 'bbs_edit_acl', 'bbs_comment_acl', 'bbs_view_acl', 'bbs_markup']
  13. if flask.request.method == 'POST':
  14. if admin_check(conn, None, 'bbs_set (acl)') != 1:
  15. return re_error(conn, '/ban')
  16. else:
  17. for for_a in range(len(i_list)):
  18. curs.execute(db_change("update bbs_set set set_data = ? where set_name = ? and set_id = ?"), [
  19. flask.request.form.get(i_list[for_a], 'normal'),
  20. i_list[for_a],
  21. bbs_num
  22. ])
  23. return redirect(conn, '/bbs/set/' + bbs_num_str)
  24. else:
  25. d_list = ['' for _ in range(0, len(i_list))]
  26. other_menu = []
  27. if admin_check(conn) != 1:
  28. disable = 'disabled'
  29. else:
  30. disable = ''
  31. other_menu += [['bbs/delete/' + bbs_num_str, get_lang(conn, 'delete')]]
  32. for for_a in range(len(i_list)):
  33. curs.execute(db_change('select set_data from bbs_set where set_name = ? and set_id = ?'), [i_list[for_a], bbs_num])
  34. sql_d = curs.fetchall()
  35. if sql_d:
  36. d_list[for_a] = sql_d[0][0]
  37. else:
  38. curs.execute(db_change('insert into bbs_set (set_name, set_code, set_id, set_data) values (?, "", ?, ?)'), [i_list[for_a], bbs_num, 'normal'])
  39. d_list[for_a] = 'normal'
  40. acl_div = ['' for _ in range(0, len(i_list))]
  41. acl_list = get_acl_list()
  42. for for_a in range(0, len(i_list)):
  43. if for_a == 4:
  44. acl_list = ['normal'] + get_init_set_list('markup')['list']
  45. for data_list in acl_list:
  46. if data_list == d_list[for_a]:
  47. check = 'selected="selected"'
  48. else:
  49. check = ''
  50. acl_div[for_a] += '<option value="' + data_list + '" ' + check + '>' + (data_list if data_list != '' else 'normal') + '</option>'
  51. return easy_minify(conn, flask.render_template(skin_check(conn),
  52. imp = [get_lang(conn, 'bbs_set'), wiki_set(conn), wiki_custom(conn), wiki_css(['(' + bbs_name + ')', 0])],
  53. data = render_simple_set(conn, '''
  54. <form method="post">
  55. <hr class="main_hr">
  56. <a href="/acl/TEST#exp">(''' + get_lang(conn, 'reference') + ''')</a>
  57. <h2>''' + get_lang(conn, 'acl') + '''</h2>
  58. <h3>''' + get_lang(conn, 'bbs_view_acl') + '''</h3>
  59. <select ''' + disable + ''' name="bbs_view_acl">''' + acl_div[3] + '''</select>
  60. <h4>''' + get_lang(conn, 'bbs_acl') + '''</h4>
  61. <select ''' + disable + ''' name="bbs_acl">''' + acl_div[0] + '''</select>
  62. <h5>''' + get_lang(conn, 'bbs_edit_acl') + '''</h5>
  63. <select ''' + disable + ''' name="bbs_edit_acl">''' + acl_div[1] + '''</select>
  64. <h5>''' + get_lang(conn, 'bbs_comment_acl') + '''</h5>
  65. <select ''' + disable + ''' name="bbs_comment_acl">''' + acl_div[2] + '''</select>
  66. <h2>''' + get_lang(conn, 'markup') + '''</h2>
  67. <select ''' + disable + ''' name="bbs_markup">''' + acl_div[4] + '''</select>
  68. <hr class="main_hr">
  69. <button id="opennamu_save_button" type="submit">''' + get_lang(conn, 'save') + '''</button>
  70. </form>
  71. '''),
  72. menu = [['bbs/w/' + bbs_num_str, get_lang(conn, 'return')]] + other_menu
  73. ))