123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- from __future__ import unicode_literals
- from misago.conf import db_settings
- from misago.conf.models import Setting
- from . import fetch_assoc
- def copy_value(setting):
- def closure(old_value):
- setting_obj = Setting.objects.get(setting=setting)
- setting_obj.value = old_value
- setting_obj.save()
- return setting_obj
- return closure
- def map_value(setting, translation):
- def closure(old_value):
- setting_obj = Setting.objects.get(setting=setting)
- setting_obj.value = translation[old_value]
- setting_obj.save()
- return setting_obj
- return closure
- def convert_allow_custom_avatars(old_value):
- setting_obj = Setting.objects.get(setting='allow_custom_avatars')
- setting_obj.value = 'upload' in old_value.split(',')
- setting_obj.save()
- return setting_obj
- SETTING_CONVERTER = {
- 'board_name': copy_value('forum_name'),
- 'board_index_title': copy_value('forum_index_title'),
- 'board_index_meta': copy_value('forum_index_meta_description'),
- 'board_header': copy_value('forum_branding_text'),
- 'email_footnote_plain': copy_value('email_footer'),
- 'tos_title': copy_value('terms_of_service_title'),
- 'tos_url': copy_value('terms_of_service_link'),
- 'tos_content': copy_value('terms_of_service'),
- 'board_credits': copy_value('forum_footnote'),
- 'thread_name_min': copy_value('thread_title_length_min'),
- 'thread_name_max': copy_value('thread_title_length_max'),
- 'post_length_min': copy_value('post_length_min'),
- 'account_activation': map_value(
- 'account_activation', {
- 'none': 'none',
- 'user': 'user',
- 'admin': 'admin',
- 'block': 'closed',
- }
- ),
- 'username_length_min': copy_value('username_length_min'),
- 'username_length_max': copy_value('username_length_max'),
- 'password_length': copy_value('password_length_min'),
- 'avatars_types': convert_allow_custom_avatars,
- 'default_avatar': copy_value('default_avatar'),
- 'upload_limit': copy_value('avatar_upload_limit'),
- 'subscribe_start': map_value('subscribe_start', {
- '0': 'no',
- '1': 'watch',
- '2': 'watch_email',
- }),
- 'subscribe_reply': map_value('subscribe_reply', {
- '0': 'no',
- '1': 'watch',
- '2': 'watch_email',
- }),
- 'bots_registration': map_value('captcha_type', {
- 'no': 'no',
- 'recaptcha': 're',
- 'qa': 'qa',
- }),
- 'recaptcha_public': copy_value('recaptcha_site_key'),
- 'recaptcha_private': copy_value('recaptcha_secret_key'),
- 'qa_test': copy_value('qa_question'),
- 'qa_test_help': copy_value('qa_help_text'),
- 'qa_test_answers': copy_value('qa_answers'),
- }
- def move_settings(stdout=None):
- for row in fetch_assoc('SELECT * FROM misago_setting'):
- setting_key = row['setting']
- if setting_key in SETTING_CONVERTER:
- convert_setting = SETTING_CONVERTER[setting_key]
- setting_obj = convert_setting(row['value'])
- stdout.write(setting_obj.name)
- db_settings.flush_cache()
|