From feb7a29ff04ee2f61a86c98f9621035518f9ec17 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 15 Apr 2015 15:55:40 +0200 Subject: [PATCH] Rename old parameters. --- .../lib/migrations/0002_rename_parameters.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 modoboa/lib/migrations/0002_rename_parameters.py diff --git a/modoboa/lib/migrations/0002_rename_parameters.py b/modoboa/lib/migrations/0002_rename_parameters.py new file mode 100644 index 000000000..da484142b --- /dev/null +++ b/modoboa/lib/migrations/0002_rename_parameters.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + +APPLICATIONS = [ + ("admin", "modoboa_admin"), + ("amavis", "modoboa_amavis"), + ("limits", "modoboa_admin_limits"), + ("postfix_autoreply", "modoboa_postfix_autoreply"), + ("postfix_relay_domains", "modoboa_admin_relaydomains"), + ("radicale", "modoboa_radicale"), + ("stats", "modoboa_stats"), + ("sievefilters", "modoboa_sievefilters"), + ("webmail", "modoboa_webmail"), +] + +def rename_app_parameters(app, model): + """Rename all parameters for a given app.""" + qset = model.objects.filter(name__startswith=app[0]) + for param in qset: + param.name = param.name.replace( + "{}.".format(app[0]), "{}.".format(app[1]) + ) + param.save() + + +def rename_parameters(apps, schema_editor): + """Rename old parameters.""" + Parameter = apps.get_model("lib", "Parameter") + UserParameter = apps.get_model("lib", "UserParameter") + for app in APPLICATIONS: + rename_app_parameters(app, Parameter) + rename_app_parameters(app, UserParameter) + + +class Migration(migrations.Migration): + + dependencies = [ + ('lib', '0001_initial'), + ] + + operations = [ + migrations.RunPython(rename_parameters) + ]