Continued adding support for the various migration commands.

Mon, 19 Dec 2016 20:22:37 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 19 Dec 2016 20:22:37 +0100
changeset 75
0165ce437462
parent 74
f33822c3eb47
child 76
230363929c49

Continued adding support for the various migration commands.

PluginDjango.e4p file | annotate | diff | comparison | revisions
PluginProjectDjango.py file | annotate | diff | comparison | revisions
ProjectDjango/DjangoMakeMigrationsDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/DjangoMigrationSelectionDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/DjangoMigrationsListDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/DjangoSquashMigrationSelectionDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/DjangoSquashMigrationSelectionDialog.ui file | annotate | diff | comparison | revisions
ProjectDjango/Project.py file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_de.qm file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_de.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_empty.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_en.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_es.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_ru.ts file | annotate | diff | comparison | revisions
ProjectDjango/i18n/django_tr.ts file | annotate | diff | comparison | revisions
--- a/PluginDjango.e4p	Mon Dec 19 19:26:40 2016 +0100
+++ b/PluginDjango.e4p	Mon Dec 19 20:22:37 2016 +0100
@@ -23,6 +23,7 @@
     <Source>ProjectDjango/DjangoMakeMigrationsDialog.py</Source>
     <Source>ProjectDjango/DjangoMigrationSelectionDialog.py</Source>
     <Source>ProjectDjango/DjangoMigrationsListDialog.py</Source>
+    <Source>ProjectDjango/DjangoSquashMigrationSelectionDialog.py</Source>
     <Source>ProjectDjango/Project.py</Source>
     <Source>ProjectDjango/__init__.py</Source>
     <Source>__init__.py</Source>
@@ -35,6 +36,7 @@
     <Form>ProjectDjango/DjangoMakeMigrationsDialog.ui</Form>
     <Form>ProjectDjango/DjangoMigrationSelectionDialog.ui</Form>
     <Form>ProjectDjango/DjangoMigrationsListDialog.ui</Form>
+    <Form>ProjectDjango/DjangoSquashMigrationSelectionDialog.ui</Form>
   </Forms>
   <Translations>
     <Translation>ProjectDjango/i18n/django_de.qm</Translation>
@@ -253,6 +255,18 @@
         <value>
           <dict>
             <key>
+              <string>CopyrightAuthor</string>
+            </key>
+            <value>
+              <string></string>
+            </value>
+            <key>
+              <string>CopyrightMinFileSize</string>
+            </key>
+            <value>
+              <int>0</int>
+            </value>
+            <key>
               <string>DocstringType</string>
             </key>
             <value>
@@ -268,7 +282,7 @@
               <string>ExcludeMessages</string>
             </key>
             <value>
-              <string>E24, N802, N803, N807, N808, N821, W293, E265</string>
+              <string>E24, E265, N802, N803, N807, N808, N821, W293, E266, C101</string>
             </value>
             <key>
               <string>FixCodes</string>
@@ -283,6 +297,12 @@
               <bool>False</bool>
             </value>
             <key>
+              <string>FutureChecker</string>
+            </key>
+            <value>
+              <string></string>
+            </value>
+            <key>
               <string>HangClosing</string>
             </key>
             <value>
@@ -295,6 +315,12 @@
               <string></string>
             </value>
             <key>
+              <string>MaxCodeComplexity</string>
+            </key>
+            <value>
+              <int>10</int>
+            </value>
+            <key>
               <string>MaxLineLength</string>
             </key>
             <value>
@@ -318,6 +344,12 @@
             <value>
               <bool>False</bool>
             </value>
+            <key>
+              <string>ValidEncodings</string>
+            </key>
+            <value>
+              <string>latin-1, utf-8</string>
+            </value>
           </dict>
         </value>
       </dict>
--- a/PluginProjectDjango.py	Mon Dec 19 19:26:40 2016 +0100
+++ b/PluginProjectDjango.py	Mon Dec 19 20:22:37 2016 +0100
@@ -277,7 +277,7 @@
             if loc and loc != "C":
                 locale_dir = os.path.join(
                     os.path.dirname(__file__), "ProjectDjango", "i18n")
-                translation = "django_%s" % loc
+                translation = "django_{0}".format(loc)
                 translator = QTranslator(None)
                 loaded = translator.load(translation, locale_dir)
                 if loaded:
@@ -431,3 +431,6 @@
             return list(self.__menus.keys())
         else:
             return []
+
+#
+# eflag: noqa = M801
--- a/ProjectDjango/DjangoMakeMigrationsDialog.py	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/DjangoMakeMigrationsDialog.py	Mon Dec 19 20:22:37 2016 +0100
@@ -22,6 +22,8 @@
         """
         Constructor
         
+        @param recentApps list of recently entered applications
+        @type list of str
         @param parent reference to the parent widget
         @type QWidget
         """
--- a/ProjectDjango/DjangoMigrationSelectionDialog.py	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/DjangoMigrationSelectionDialog.py	Mon Dec 19 20:22:37 2016 +0100
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode    # __IGNORE_WARNING__
-except NameError:
-    pass
 
 import os
 
@@ -32,10 +28,8 @@
         """
         Constructor
         
-        @param pythonExecutable Python executable to be used
-        @type str
-        @param sitePath path of the site
-        @type str
+        @param migrations dictionary containing the available migrations
+        @type dict
         @param parent reference to the parent widget
         @type QWidget
         """
--- a/ProjectDjango/DjangoMigrationsListDialog.py	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/DjangoMigrationsListDialog.py	Mon Dec 19 20:22:37 2016 +0100
@@ -36,10 +36,12 @@
         """
         Constructor
         
+        @param mode mode of the dialog
+        @type str
+        @param django reference to the Django project object
+        @type Project
         @param parent reference to the parent widget
         @type QWidget
-        @param django reference to the Django project object
-        @type Project
         """
         super(DjangoMigrationsListDialog, self).__init__(parent)
         self.setupUi(self)
@@ -235,7 +237,7 @@
             ])
             itm = QTreeWidgetItem(self.migrationsList, [
                 parts[0].strip(),
-                dependencies, 
+                dependencies,
             ])
         else:
             itm = QTreeWidgetItem(self.migrationsList, [
@@ -305,7 +307,7 @@
                 menu.addAction(
                     self.tr("Make Migrations (dry-run)"),
                     lambda: self.__makeMigrations(dryRun=True))\
-                .setEnabled(len(selApps) > 0)
+                    .setEnabled(len(selApps) > 0)
         else:
             menu.addAction(self.tr("Apply Selected Migrations"),
                            self.__applyMigration)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/DjangoSquashMigrationSelectionDialog.py	Mon Dec 19 20:22:37 2016 +0100
@@ -0,0 +1,113 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to enter data needed to squash migrations.
+"""
+
+from __future__ import unicode_literals
+
+import os
+
+from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtGui import QIcon
+from PyQt5.QtWidgets import QDialog, QDialogButtonBox
+
+from .Ui_DjangoSquashMigrationSelectionDialog import \
+    Ui_DjangoSquashMigrationSelectionDialog
+
+
+class DjangoSquashMigrationSelectionDialog(
+        QDialog, Ui_DjangoSquashMigrationSelectionDialog):
+    """
+    Class implementing a dialog to enter data needed to squash migrations.
+    """
+    def __init__(self, migrations, showStart, parent=None):
+        """
+        Constructor
+        
+        @param migrations dictionary containing the available migrations
+        @type dict
+        @param showStart flag indicating to show the start migrations
+        @type bool
+        @param parent reference to the parent widget
+        @type QWidget
+        """
+        super(DjangoSquashMigrationSelectionDialog, self).__init__(parent)
+        self.setupUi(self)
+        
+        self.__appliedIcon = QIcon(os.path.join(
+            os.path.dirname(__file__), "icons", "applied.png"))
+        
+        self.startLabel.setEnabled(showStart)
+        self.startMigrationComboBox.setEnabled(showStart)
+        
+        self.__migrations = migrations
+        self.applicationComboBox.addItems(
+            [""] + sorted(self.__migrations.keys()))
+        self.on_applicationComboBox_activated("")
+        
+        msh = self.minimumSizeHint()
+        self.resize(max(self.width(), msh.width()), msh.height())
+    
+    def __updateOkButton(self):
+        """
+        Private slot to set the enabled state of the OK button.
+        """
+        enabled = (
+            bool(self.applicationComboBox.currentText()) and
+            bool(self.endMigrationComboBox.currentText()))
+        self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enabled)
+    
+    @pyqtSlot(str)
+    def on_applicationComboBox_activated(self, app):
+        """
+        Private slot to update the migrations combo boxes.
+        
+        @param app name of the selected application
+        @type str
+        """
+        self.startMigrationComboBox.clear()
+        self.endMigrationComboBox.clear()
+        if app:
+            for combo in [self.startMigrationComboBox,
+                          self.endMigrationComboBox]:
+                combo.addItem("")
+                for applied, migration in self.__migrations[app]:
+                    if applied:
+                        combo.addItem(self.__appliedIcon, migration)
+                    else:
+                        combo.addItem(migration)
+        self.__updateOkButton()
+    
+    @pyqtSlot(str)
+    def on_endMigrationComboBox_activated(self, migration):
+        """
+        Private slot handling the selection of a migration.
+        
+        @param migration name of the selected migration
+        @type str
+        """
+        self.__updateOkButton()
+    
+    def getData(self):
+        """
+        Public method to retrieve the data entered by the user.
+        
+        @return tuple containing the selected app, the start migration,
+            the end migration and a flag indicating no optimization is wanted
+        @rtype tuple of three str and a bool
+        """
+        if self.startMigrationComboBox.isEnabled():
+            startMigration = self.startMigrationComboBox.currentText()
+        else:
+            startMigration = ""
+        
+        return (
+            self.applicationComboBox.currentText(),
+            startMigration,
+            self.endMigrationComboBox.currentText(),
+            self.noOptimizeCheckBox.isChecked(),
+        )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/DjangoSquashMigrationSelectionDialog.ui	Mon Dec 19 20:22:37 2016 +0100
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DjangoSquashMigrationSelectionDialog</class>
+ <widget class="QDialog" name="DjangoSquashMigrationSelectionDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>561</width>
+    <height>172</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Squash Migrations</string>
+  </property>
+  <property name="sizeGripEnabled">
+   <bool>true</bool>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Application:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QComboBox" name="applicationComboBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="toolTip">
+      <string>Select the application</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="startLabel">
+     <property name="text">
+      <string>Start Migration:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QComboBox" name="startMigrationComboBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="toolTip">
+      <string>Select a migration</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>End Migration:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="1">
+    <widget class="QComboBox" name="endMigrationComboBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="toolTip">
+      <string>Select a migration</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0" colspan="2">
+    <widget class="QCheckBox" name="noOptimizeCheckBox">
+     <property name="toolTip">
+      <string>Select to not optimize the squashed migration</string>
+     </property>
+     <property name="text">
+      <string>Dont' optimize</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="0" colspan="2">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>applicationComboBox</tabstop>
+  <tabstop>startMigrationComboBox</tabstop>
+  <tabstop>endMigrationComboBox</tabstop>
+  <tabstop>noOptimizeCheckBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>DjangoSquashMigrationSelectionDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>DjangoSquashMigrationSelectionDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
--- a/ProjectDjango/Project.py	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/Project.py	Mon Dec 19 20:22:37 2016 +0100
@@ -747,6 +747,20 @@
         self.actions.append(self.makeMigrationsAct)
         
         # TODO: squashmigrations
+        self.squashMigrationsAct = E5Action(
+            self.tr('Squash Migrations'),
+            self.tr('S&quash Migrations'),
+            0, 0,
+            self, 'django_migration_squash')
+        self.squashMigrationsAct.setStatusTip(self.tr(
+            'Squash migrations of an application of the project'))
+        self.squashMigrationsAct.setWhatsThis(self.tr(
+            """<b>Squash Migrations</b>"""
+            """<p>This squashes migrations of an application of the"""
+            """ Django project.</p>"""
+        ))
+        self.squashMigrationsAct.triggered.connect(self.__squashMigrations)
+        self.actions.append(self.squashMigrationsAct)
         
         # TODO: sqlmigrate
     
@@ -861,6 +875,8 @@
         menu.addAction(self.unmigrateAct)
         menu.addSeparator()
         menu.addAction(self.makeMigrationsAct)
+        menu.addSeparator()
+        menu.addAction(self.squashMigrationsAct)
         
         self.__menus["migrations"] = menu
         
@@ -1333,7 +1349,7 @@
                     os.path.join(virtualEnv, pythonExe)
                 ]:
                     if os.path.exists(python):
-                       break
+                        break
                 else:
                     python = ""
                 
@@ -1357,7 +1373,7 @@
                     os.path.join(virtualEnv, "bin", pythonExe)[:-1],
                 ]:
                     if os.path.exists(python):
-                       break
+                        break
                 else:
                     python = ""
             
@@ -2167,13 +2183,13 @@
     
     def __applyAllMigrations(self):
         """
-        Public slot to apply all migrations.
+        Private slot to apply all migrations.
         """
         self.applyMigrations()
     
     def __applySelectedMigrations(self):
         """
-        Public slot to apply selected migrations of a selected app.
+        Private slot to apply selected migrations of a selected app.
         """
         migrations = self.__getMigrations()
         if not migrations:
@@ -2337,6 +2353,49 @@
         if res:
             dia.exec_()
     
+    def __squashMigrations(self):
+        """
+        Private slot to squash migrations.
+        """
+        migrations = self.__getMigrations()
+        if not migrations:
+            E5MessageBox.information(
+                None,
+                self.tr("Squash Migrations"),
+                self.tr("""No migrations available."""))
+            return
+        
+        from .DjangoSquashMigrationSelectionDialog import \
+            DjangoSquashMigrationSelectionDialog
+        dlg = DjangoSquashMigrationSelectionDialog(
+            migrations, self.getDjangoVersion() >= (1, 9, 0))
+        if dlg.exec_() == QDialog.Accepted:
+            app, start, end, noOptimize = dlg.getData()
+        
+        title = self.tr("Squash Migrations")
+        
+        try:
+            path = self.__sitePath()
+        except DjangoNoSiteSelectedException:
+            return
+        
+        args = []
+        args.append(self.__getPythonExecutable())
+        args.append("manage.py")
+        args.append("squashmigrations")
+        args.append("--noinput")
+        if noOptimize:
+            args.append("--no-optimize")
+        args.append(app)
+        if start:
+            args.append(start)
+        args.append(end)
+        
+        dia = DjangoDialog(title)
+        res = dia.startProcess(args, path)
+        if res:
+            dia.exec_()
+    
     ##################################################################
     ## slots below implement some tool functions
     ##################################################################
@@ -2591,7 +2650,7 @@
                     args.append("--ipv6")
                 addr = self.__plugin.getPreferences("ServerAddress")
                 if addr:
-                    args.append("--addrport=%s" % addr)
+                    args.append("--addrport={0}".format(addr))
                 args += fixtures
                 
                 try:
Binary file ProjectDjango/i18n/django_de.qm has changed
--- a/ProjectDjango/i18n/django_de.ts	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/i18n/django_de.ts	Mon Dec 19 20:22:37 2016 +0100
@@ -218,32 +218,32 @@
 <context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="69"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Migration</source>
         <translation>Migration</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Dependencies</source>
         <translation>Abhängigkeiten</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>Process Generation Error</source>
         <translation>Fehler beim Prozessstart</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Der Prozess {0} konnte nicht gestartet werden. Stellen Sie sicher, dass er sich im Suchpfad befindet.</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="68"/>
         <source>Available Migrations</source>
         <translation>Verfügbare Migrationen</translation>
     </message>
@@ -253,47 +253,47 @@
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="75"/>
         <source>Migrations Plan</source>
         <translation>Migrationsplan</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
         <source>&amp;Refresh</source>
         <translation>A&amp;ktualisieren</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="85"/>
         <source>Press to refresh the list</source>
         <translation>Drücken, um die Liste zu aktualisieren</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="288"/>
         <source>Apply All Migrations</source>
         <translation>Alle Migrationen anwenden</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
         <source>Apply Selected Migrations</source>
         <translation>Ausgewählte Migrationen anwenden</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="302"/>
         <source>Unapply Migrations</source>
         <translation>Migrationen rückgängig machen</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Make Migrations</source>
         <translation>Migrationen generieren</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
         <source>Make Migrations (dry-run)</source>
         <translation>Migrationen generieren (Trockenlauf)</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
         <translation>Gib einen Namen für die Migration ein (leer lassen, um einen erzeugten Namen zu verwenden):</translation>
     </message>
@@ -467,19 +467,62 @@
     </message>
 </context>
 <context>
+    <name>DjangoSquashMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="14"/>
+        <source>Squash Migrations</source>
+        <translation>Migrationen kürzen</translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="23"/>
+        <source>Application:</source>
+        <translation>Anwendung:</translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="36"/>
+        <source>Select the application</source>
+        <translation>Wähle eine Anwendung aus</translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="43"/>
+        <source>Start Migration:</source>
+        <translation>Startmigration:</translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="76"/>
+        <source>Select a migration</source>
+        <translation>Wähle eine Migration aus</translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="63"/>
+        <source>End Migration:</source>
+        <translation>Endmigration:</translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="83"/>
+        <source>Select to not optimize the squashed migration</source>
+        <translation>Auswählen, um die Optimierung der verkürzten Migration zu unterdrücken</translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="86"/>
+        <source>Dont&apos; optimize</source>
+        <translation>Keine Optimierung</translation>
+    </message>
+</context>
+<context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="762"/>
+        <location filename="../Project.py" line="776"/>
         <source>D&amp;jango</source>
         <translation>D&amp;jango</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>New Form</source>
         <translation>Neues Formular</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1077"/>
+        <location filename="../Project.py" line="1093"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>Die Datei existiert bereits. Überschreiben?</translation>
     </message>
@@ -574,7 +617,7 @@
         <translation>&lt;b&gt;Server starten&lt;/b&gt;&lt;p&gt;Startet den Django Web-Server mittels &quot;manage.py runserve&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Run Web-Browser</source>
         <translation>Web-Browser starten</translation>
     </message>
@@ -594,7 +637,7 @@
         <translation>&lt;b&gt;Web-Browser starten&lt;/b&gt;&lt;p&gt;Startet den Standard Web-Browser mit der URL des Django Web-Servers.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>About Django</source>
         <translation>Über Django</translation>
     </message>
@@ -634,87 +677,87 @@
         <translation>&lt;b&gt;Synchronisieren&lt;/b&gt;&lt;p&gt;Synchronisiert die Datenbank.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="802"/>
+        <location filename="../Project.py" line="816"/>
         <source>&amp;Database</source>
         <translation>&amp;Datenbank</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1815"/>
+        <location filename="../Project.py" line="1831"/>
         <source>Project</source>
         <translation>Projekt</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1555"/>
+        <location filename="../Project.py" line="1571"/>
         <source>Application</source>
         <translation>Anwendung</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Start Django</source>
         <translation>Django starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation>Auswählen, ob ddieses Projekt ein Django Projekt oder eine Django Anwendung sein soll.&lt;br /&gt;Den leeren Eintrag wählen, wenn keines zutrifft.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Start Django Project</source>
         <translation>Django Projekt starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1610"/>
+        <location filename="../Project.py" line="1626"/>
         <source>Django project created successfully.</source>
         <translation>Das Django Projekt wurde erfolgreich erzeugt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Enter the name of the new Django project.</source>
         <translation>Gib den Namen des neuen Django Projektes ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1662"/>
+        <location filename="../Project.py" line="1678"/>
         <source>Start Django Application</source>
         <translation>Django Anwendung starten</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1696"/>
+        <location filename="../Project.py" line="1712"/>
         <source>Django application created successfully.</source>
         <translation>Die Django Anwendung wurde erfolgreich erzeugt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select Project</source>
         <translation>Wähle Projekt</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select the Django project to work with.</source>
         <translation>Wähle das Django Projekt, mit dem gearbeitet werden soll.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1813"/>
+        <location filename="../Project.py" line="1829"/>
         <source>None</source>
         <translation>keines</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>Process Generation Error</source>
         <translation>Fehler beim Prozessstart</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1892"/>
+        <location filename="../Project.py" line="1908"/>
         <source>The Django server could not be started.</source>
         <translation>Der Django Server konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation>Der Web-Browser konnt mit der URL &quot;{0}&quot; nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2698"/>
+        <location filename="../Project.py" line="2757"/>
         <source>The Django process could not be started.</source>
         <translation>Der Django Prozess konnte nicht gestartet werden.</translation>
     </message>
@@ -724,7 +767,7 @@
         <translation>&lt;b&gt;Aktuelles Projekt&lt;/b&gt;&lt;p&gt;Wählt das aktuelle Projekt aus. Dies wird bei Django Mehrfach-Projekten benötigt, um zwischen den Projekten umzuschalten.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2361"/>
+        <location filename="../Project.py" line="2420"/>
         <source>Diff Settings</source>
         <translation>Settings Unterschiede</translation>
     </message>
@@ -744,17 +787,17 @@
         <translation>&lt;b&gt;Settings Unterschiede&lt;/b&gt;&lt;p&gt;Zeigt die Änderungen gegenüber dem Standard.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="876"/>
+        <location filename="../Project.py" line="892"/>
         <source>&amp;Tools</source>
         <translation>&amp;Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1818"/>
+        <location filename="../Project.py" line="1834"/>
         <source>&amp;Current Django project ({0})</source>
         <translation>&amp;Aktuelles Django Projekt ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2382"/>
+        <location filename="../Project.py" line="2441"/>
         <source>Cleanup</source>
         <translation>Aufräumen</translation>
     </message>
@@ -774,12 +817,12 @@
         <translation>&lt;b&gt;Aufräumen&lt;/b&gt;&lt;p&gt;Löscht veraltete Daten aus der Datenbank.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2394"/>
+        <location filename="../Project.py" line="2453"/>
         <source>Database cleaned up successfully.</source>
         <translation>Datenbank erfolgreich aufgeräumt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2405"/>
+        <location filename="../Project.py" line="2464"/>
         <source>Validate</source>
         <translation>Validieren</translation>
     </message>
@@ -799,12 +842,12 @@
         <translation>&lt;b&gt;Validieren&lt;/b&gt;&lt;p&gt;Validiert alle installierten Modelle&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Select Applications</source>
         <translation>Applikation auswählen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation>Gib die Liste der Applikationen durch Leerzeichen getrennt ein.</translation>
     </message>
@@ -829,7 +872,7 @@
         <translation>&lt;b&gt;Starte Python Konsole&lt;/b&gt;&lt;p&gt;Startet einen interaktiven Python Interpreter.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2460"/>
+        <location filename="../Project.py" line="2519"/>
         <source>Create Cache Tables</source>
         <translation>Erzeuge Cache Tabellen</translation>
     </message>
@@ -849,12 +892,12 @@
         <translation>&lt;b&gt;Erzeuge Cache Tabellen&lt;/b&gt;&lt;p&gt;Erzeugt die für das SQL Cache Backend benötigten Tabellen&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2467"/>
+        <location filename="../Project.py" line="2526"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation>Gib die Namen der cache Tabellen durch Leerzeichen getrennt ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2482"/>
+        <location filename="../Project.py" line="2541"/>
         <source>Cache tables created successfully.</source>
         <translation>Cache Tabellen erfolgreich erzeugt.</translation>
     </message>
@@ -879,7 +922,7 @@
         <translation>&lt;b&gt;Untersuchen&lt;/b&gt;&lt;p&gt;Untersucht die Datenbanktabellen und gibt ein Django Modellmodul aus.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1979"/>
+        <location filename="../Project.py" line="1995"/>
         <source>Introspect Database</source>
         <translation>Datenbank untersuchen</translation>
     </message>
@@ -904,17 +947,17 @@
         <translation>&lt;b&gt;Neuinitialisierung&lt;/b&gt;&lt;p&gt;Setzt alle Datenbanktabelle in ihren Ursprungszustand zurück.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2137"/>
+        <location filename="../Project.py" line="2153"/>
         <source>Flush Database</source>
         <translation>Datenbank neu initialisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2008"/>
+        <location filename="../Project.py" line="2024"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation>Eine Neuinitialisierung der Datenbank wird alle Daten löschen. Sind sie sicher?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2020"/>
+        <location filename="../Project.py" line="2036"/>
         <source>Database tables flushed successfully.</source>
         <translation>Datenbank erfolgreich neu initialisiert.</translation>
     </message>
@@ -939,7 +982,7 @@
         <translation>Starte &amp;Datenbank Konsole</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2095"/>
+        <location filename="../Project.py" line="2111"/>
         <source>Create Tables</source>
         <translation>Tabellen erzeugen</translation>
     </message>
@@ -959,12 +1002,12 @@
         <translation>&lt;b&gt;Tabellen erzeugen&lt;/b&gt;&lt;p&gt;Zeigt die CREATE TABLE SQL Befehle für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="826"/>
+        <location filename="../Project.py" line="840"/>
         <source>Show &amp;SQL</source>
         <translation>Zeige &amp;SQL</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2102"/>
+        <location filename="../Project.py" line="2118"/>
         <source>Create Indexes</source>
         <translation>Indices erzeugen</translation>
     </message>
@@ -979,7 +1022,7 @@
         <translation>&lt;b&gt;Indices erzeugen&lt;/b&gt;&lt;p&gt;Zeigt die CREATE INDEX SQL Befehle für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2109"/>
+        <location filename="../Project.py" line="2125"/>
         <source>Create Everything</source>
         <translation>Alles erzeugen</translation>
     </message>
@@ -1004,7 +1047,7 @@
         <translation>Zeigt die CREATE INDEX SQL Befehle für eine oder mehrere Anwendungen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2116"/>
+        <location filename="../Project.py" line="2132"/>
         <source>Custom Statements</source>
         <translation>Spezifische Befehle</translation>
     </message>
@@ -1024,7 +1067,7 @@
         <translation>&lt;b&gt;Spezifische Befehle&lt;/b&gt;&lt;p&gt;Zeigt spezifische SQL Befehle für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2123"/>
+        <location filename="../Project.py" line="2139"/>
         <source>Drop Tables</source>
         <translation>Tabellen löschen</translation>
     </message>
@@ -1059,7 +1102,7 @@
         <translation>&lt;b&gt;Datenbank neu initialisieren&lt;/b&gt;&lt;p/&gt;Zeigt eine Befehlsliste, um alle Datenbanktabelle in ihren Ursprungszustand zurückzusetzen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2144"/>
+        <location filename="../Project.py" line="2160"/>
         <source>Reset Sequences</source>
         <translation>Sequenzen zurücksetzen</translation>
     </message>
@@ -1079,7 +1122,7 @@
         <translation>&lt;b&gt;Sequenzen zurücksetzen&lt;/b&gt;&lt;p&gt;Zeigt die SQL Befehle zum Zurücksetzen von Sequenzen für eine oder mehrere Anwendungen.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2556"/>
         <source>Dump Data</source>
         <translation>Daten sichern</translation>
     </message>
@@ -1099,32 +1142,32 @@
         <translation>&lt;b&gt;Daten sichern&lt;/b&lt;&lt;p&gt;Schreibt die Datenbank in ein Fixture.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="896"/>
+        <location filename="../Project.py" line="912"/>
         <source>T&amp;esting</source>
         <translation>&amp;Testen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2082"/>
+        <location filename="../Project.py" line="2098"/>
         <source>SQL Files (*.sql)</source>
         <translation>SQL Dateien (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2520"/>
+        <location filename="../Project.py" line="2579"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Dateien (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2522"/>
+        <location filename="../Project.py" line="2581"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Dateien (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2524"/>
+        <location filename="../Project.py" line="2583"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Dateien (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2536"/>
+        <location filename="../Project.py" line="2595"/>
         <source>Load Data</source>
         <translation>Daten laden</translation>
     </message>
@@ -1184,7 +1227,7 @@
         <translation>&lt;b&gt;Testserver starten&lt;/b&gt;&lt;p&gt;Startet einen Entwicklungsserver mit Daten aus einer Liste von Fixtures.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2627"/>
+        <location filename="../Project.py" line="2686"/>
         <source>The Django test server could not be started.</source>
         <translation>Der Django Testserver konnte nicht gestartet werden.</translation>
     </message>
@@ -1209,113 +1252,113 @@
         <translation>&lt;b&gt;Hilfe&lt;/b&gt;&lt;p&gt;Zeigt den Django Hilfe Index an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="990"/>
+        <location filename="../Project.py" line="1006"/>
         <source>New template...</source>
         <translation>Neues Template...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="999"/>
+        <location filename="../Project.py" line="1015"/>
         <source>Update all catalogs</source>
         <translation>Alle Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1002"/>
+        <location filename="../Project.py" line="1018"/>
         <source>Update selected catalogs</source>
         <translation>Ausgewählte Kataloge aktualisieren</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1029"/>
         <source>Compile all catalogs</source>
         <translation>Alle Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1016"/>
+        <location filename="../Project.py" line="1032"/>
         <source>Compile selected catalogs</source>
         <translation>Ausgewählte Kataloge übersetzen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2794"/>
+        <location filename="../Project.py" line="2853"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Initialisiere Textkatalog für &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3053"/>
+        <location filename="../Project.py" line="3112"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation>Keine aktuelle Site ausgewählt oder noch keine Site erzeugt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2814"/>
+        <location filename="../Project.py" line="2873"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>
 Textkatalog erfolgreich initialisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2926"/>
+        <location filename="../Project.py" line="2985"/>
         <source>Updating message catalogs</source>
         <translation>Aktualisiere Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3017"/>
+        <location filename="../Project.py" line="3076"/>
         <source>No locales detected. Aborting...</source>
         <translation>Keine Sprachen erkannt. Abbruch...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2977"/>
+        <location filename="../Project.py" line="3036"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Textkataloge erfolgreich aktualisiert.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3043"/>
+        <location filename="../Project.py" line="3102"/>
         <source>Compiling message catalogs</source>
         <translation>Übersetze Textkataloge</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3060"/>
+        <location filename="../Project.py" line="3119"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
 Textkataloge erfolgreich übersetzt.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
+        <location filename="../Project.py" line="1022"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation>Alle Kataloge aktualisieren (mit veralteten)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1009"/>
+        <location filename="../Project.py" line="1025"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation>Ausgewählte Kataloge aktualisieren (mit veralteten)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Start Global Django Application</source>
         <translation>Globale Django Anwendung beginnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Enter the name of the new global Django application.</source>
         <translation>Gib den Namen der neuen globalen Django Anwendung ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Start Local Django Application</source>
         <translation>Lokale Django Anwendung beginnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Enter the name of the new local Django application.</source>
         <translation>Gib den Namen der neuen lokalen Django Anwendung ein.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2958"/>
+        <location filename="../Project.py" line="3017"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation>Aktualisiere Textkataloge (veraltete Texte behalten)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Change Password</source>
         <translation>Kennwort ändern</translation>
     </message>
@@ -1355,7 +1398,7 @@
         <translation>&lt;b&gt;Superuser anlegen&lt;/b&gt;&lt;p&gt;Legt eine Superuser Kennung für das Django Projekt an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2713"/>
+        <location filename="../Project.py" line="2772"/>
         <source>Clear Sessions</source>
         <translation>Sessions löschen</translation>
     </message>
@@ -1375,52 +1418,52 @@
         <translation>&lt;b&gt;Sessions löschen&lt;/b&gt;&lt;p&gt;Löscht abgelaufene Sessions des Django Projektes.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="916"/>
+        <location filename="../Project.py" line="932"/>
         <source>&amp;Authorization</source>
         <translation>&amp;Authorisierung</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="933"/>
+        <location filename="../Project.py" line="949"/>
         <source>&amp;Session</source>
         <translation>&amp;Session</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Enter the name of the user:</source>
         <translation>Gib den Namen des Nutzers ein:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2725"/>
+        <location filename="../Project.py" line="2784"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Abgelaufene Sessions erfolgreich gelöscht.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Django ist ein Python Web-Framework, das eine schnelle Entwicklung und ein klares, pragmatisches Design fördert.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1679"/>
+        <location filename="../Project.py" line="1695"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Das &lt;b&gt;django-admin.py&lt;/b&gt; Skript ist nicht im Pfad. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="975"/>
+        <location filename="../Project.py" line="991"/>
         <source>Open with {0}</source>
         <translation>Mit {0} öffnen</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>Der Prozess für den Übersetzungseditor ({0}) konnte nicht gestartet werden.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die neue Formulardatei &lt;b&gt;{0}&lt;/b&gt; konnte nicht erzeugt werden.&lt;br&gt;Problem: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2130"/>
+        <location filename="../Project.py" line="2146"/>
         <source>Drop Indexes</source>
         <translation>Indices löschen</translation>
     </message>
@@ -1480,7 +1523,7 @@
         <translation>&lt;b&gt;Migrationsplan anzeigen&lt;/b&gt;&lt;p&gt;Dies zeigt eine Liste mit dem Migrationplans des Django Projektes.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="853"/>
+        <location filename="../Project.py" line="867"/>
         <source>&amp;Migrations</source>
         <translation>&amp;Migrationen</translation>
     </message>
@@ -1505,7 +1548,7 @@
         <translation>&lt;b&gt;Alle Migrationen anwenden&lt;/b&gt;&lt;p&gt;Dies wendet alle Migrationen des Django Projektes an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2192"/>
+        <location filename="../Project.py" line="2208"/>
         <source>Apply Selected Migrations</source>
         <translation>Ausgewählte Migrationen anwenden</translation>
     </message>
@@ -1520,7 +1563,7 @@
         <translation>&lt;b&gt;Ausgewählte Migrationen anwenden&lt;/b&gt;&lt;p&gt;Dies wendet ausgewählte Migrationen des Django Projektes an.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Unapply Migrations</source>
         <translation>Migrationen rückgängig machen</translation>
     </message>
@@ -1540,7 +1583,7 @@
         <translation>&lt;b&gt;Migrationen rückgängig machen&lt;/b&gt;&lt;p&gt;Dies macht alle Migrationen einer Anwendung des Django Projektes rückgängig.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2328"/>
+        <location filename="../Project.py" line="2344"/>
         <source>Make Migrations</source>
         <translation>Migrationen generieren</translation>
     </message>
@@ -1560,20 +1603,40 @@
         <translation>&lt;b&gt;Migrationen generieren&lt;/b&gt;&lt;p&gt;Dies generiert Migrationen für das Django Projekt.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2375"/>
         <source>No migrations available.</source>
         <translation>Keine Migrationen verfügbar.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2217"/>
+        <location filename="../Project.py" line="2233"/>
         <source>Apply Migrations</source>
         <translation>Migrationen anwenden</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Select an application:</source>
         <translation>Wähle eine Anwendung aus:</translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="2388"/>
+        <source>Squash Migrations</source>
+        <translation>Migrationen kürzen</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="750"/>
+        <source>S&amp;quash Migrations</source>
+        <translation>Migrationen &amp;kürzen</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="755"/>
+        <source>Squash migrations of an application of the project</source>
+        <translation>Migrationen einer Anwendung des Projektes zusammenfassen</translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="757"/>
+        <source>&lt;b&gt;Squash Migrations&lt;/b&gt;&lt;p&gt;This squashes migrations of an application of the Django project.&lt;/p&gt;</source>
+        <translation>&lt;b&gt;Migrationen kürzen&lt;/b&gt;&lt;p&gt;Dies fasst Migrationen einer Anwendung des Django Projektes zusammen.&lt;/p&gt;</translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
--- a/ProjectDjango/i18n/django_empty.ts	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/i18n/django_empty.ts	Mon Dec 19 20:22:37 2016 +0100
@@ -218,32 +218,32 @@
 <context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="69"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="68"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -253,47 +253,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="75"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
         <source>&amp;Refresh</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="85"/>
         <source>Press to refresh the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="288"/>
         <source>Apply All Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="302"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
         <source>Make Migrations (dry-run)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
         <translation type="unfinished"></translation>
     </message>
@@ -467,6 +467,49 @@
     </message>
 </context>
 <context>
+    <name>DjangoSquashMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="14"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="23"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="36"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="43"/>
+        <source>Start Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="76"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="63"/>
+        <source>End Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="83"/>
+        <source>Select to not optimize the squashed migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="86"/>
+        <source>Dont&apos; optimize</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Project</name>
     <message>
         <location filename="../Project.py" line="115"/>
@@ -564,7 +607,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Run Web-Browser</source>
         <translation type="unfinished"></translation>
     </message>
@@ -584,7 +627,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2460"/>
+        <location filename="../Project.py" line="2519"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -624,7 +667,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>About Django</source>
         <translation type="unfinished"></translation>
     </message>
@@ -724,7 +767,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2095"/>
+        <location filename="../Project.py" line="2111"/>
         <source>Create Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -744,7 +787,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2102"/>
+        <location filename="../Project.py" line="2118"/>
         <source>Create Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -764,7 +807,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2109"/>
+        <location filename="../Project.py" line="2125"/>
         <source>Create Everything</source>
         <translation type="unfinished"></translation>
     </message>
@@ -784,7 +827,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2116"/>
+        <location filename="../Project.py" line="2132"/>
         <source>Custom Statements</source>
         <translation type="unfinished"></translation>
     </message>
@@ -804,7 +847,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2123"/>
+        <location filename="../Project.py" line="2139"/>
         <source>Drop Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -824,7 +867,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2130"/>
+        <location filename="../Project.py" line="2146"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -844,7 +887,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2137"/>
+        <location filename="../Project.py" line="2153"/>
         <source>Flush Database</source>
         <translation type="unfinished"></translation>
     </message>
@@ -864,7 +907,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2144"/>
+        <location filename="../Project.py" line="2160"/>
         <source>Reset Sequences</source>
         <translation type="unfinished"></translation>
     </message>
@@ -884,7 +927,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2361"/>
+        <location filename="../Project.py" line="2420"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -904,7 +947,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2382"/>
+        <location filename="../Project.py" line="2441"/>
         <source>Cleanup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -924,7 +967,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2405"/>
+        <location filename="../Project.py" line="2464"/>
         <source>Validate</source>
         <translation type="unfinished"></translation>
     </message>
@@ -964,7 +1007,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2556"/>
         <source>Dump Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -984,7 +1027,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2536"/>
+        <location filename="../Project.py" line="2595"/>
         <source>Load Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1044,7 +1087,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1084,7 +1127,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2713"/>
+        <location filename="../Project.py" line="2772"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1144,340 +1187,340 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="762"/>
+        <location filename="../Project.py" line="776"/>
         <source>D&amp;jango</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="802"/>
+        <location filename="../Project.py" line="816"/>
         <source>&amp;Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="826"/>
+        <location filename="../Project.py" line="840"/>
         <source>Show &amp;SQL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="853"/>
+        <location filename="../Project.py" line="867"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="876"/>
+        <location filename="../Project.py" line="892"/>
         <source>&amp;Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="896"/>
+        <location filename="../Project.py" line="912"/>
         <source>T&amp;esting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="916"/>
+        <location filename="../Project.py" line="932"/>
         <source>&amp;Authorization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="933"/>
+        <location filename="../Project.py" line="949"/>
         <source>&amp;Session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="975"/>
+        <location filename="../Project.py" line="991"/>
         <source>Open with {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="990"/>
+        <location filename="../Project.py" line="1006"/>
         <source>New template...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="999"/>
+        <location filename="../Project.py" line="1015"/>
         <source>Update all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1002"/>
+        <location filename="../Project.py" line="1018"/>
         <source>Update selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
+        <location filename="../Project.py" line="1022"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1009"/>
+        <location filename="../Project.py" line="1025"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1029"/>
         <source>Compile all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1016"/>
+        <location filename="../Project.py" line="1032"/>
         <source>Compile selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>New Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1077"/>
+        <location filename="../Project.py" line="1093"/>
         <source>The file already exists! Overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Select Applications</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1815"/>
+        <location filename="../Project.py" line="1831"/>
         <source>Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1555"/>
+        <location filename="../Project.py" line="1571"/>
         <source>Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Start Django</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Start Django Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1679"/>
+        <location filename="../Project.py" line="1695"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1610"/>
+        <location filename="../Project.py" line="1626"/>
         <source>Django project created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Enter the name of the new Django project.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1662"/>
+        <location filename="../Project.py" line="1678"/>
         <source>Start Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1696"/>
+        <location filename="../Project.py" line="1712"/>
         <source>Django application created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Start Global Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Enter the name of the new global Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Start Local Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Enter the name of the new local Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select the Django project to work with.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1813"/>
+        <location filename="../Project.py" line="1829"/>
         <source>None</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1818"/>
+        <location filename="../Project.py" line="1834"/>
         <source>&amp;Current Django project ({0})</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1892"/>
+        <location filename="../Project.py" line="1908"/>
         <source>The Django server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2698"/>
+        <location filename="../Project.py" line="2757"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1979"/>
+        <location filename="../Project.py" line="1995"/>
         <source>Introspect Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2008"/>
+        <location filename="../Project.py" line="2024"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2020"/>
+        <location filename="../Project.py" line="2036"/>
         <source>Database tables flushed successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2082"/>
+        <location filename="../Project.py" line="2098"/>
         <source>SQL Files (*.sql)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2394"/>
+        <location filename="../Project.py" line="2453"/>
         <source>Database cleaned up successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2467"/>
+        <location filename="../Project.py" line="2526"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2482"/>
+        <location filename="../Project.py" line="2541"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2520"/>
+        <location filename="../Project.py" line="2579"/>
         <source>JSON Files (*.json)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2522"/>
+        <location filename="../Project.py" line="2581"/>
         <source>XML Files (*.xml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2524"/>
+        <location filename="../Project.py" line="2583"/>
         <source>YAML Files (*.yaml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2627"/>
+        <location filename="../Project.py" line="2686"/>
         <source>The Django test server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2725"/>
+        <location filename="../Project.py" line="2784"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2794"/>
+        <location filename="../Project.py" line="2853"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3053"/>
+        <location filename="../Project.py" line="3112"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2814"/>
+        <location filename="../Project.py" line="2873"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2926"/>
+        <location filename="../Project.py" line="2985"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3017"/>
+        <location filename="../Project.py" line="3076"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2977"/>
+        <location filename="../Project.py" line="3036"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2958"/>
+        <location filename="../Project.py" line="3017"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3043"/>
+        <location filename="../Project.py" line="3102"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3060"/>
+        <location filename="../Project.py" line="3119"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1502,7 +1545,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2192"/>
+        <location filename="../Project.py" line="2208"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1517,7 +1560,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1537,7 +1580,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2328"/>
+        <location filename="../Project.py" line="2344"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1557,20 +1600,40 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2375"/>
         <source>No migrations available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2217"/>
+        <location filename="../Project.py" line="2233"/>
         <source>Apply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Select an application:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="2388"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="750"/>
+        <source>S&amp;quash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="755"/>
+        <source>Squash migrations of an application of the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="757"/>
+        <source>&lt;b&gt;Squash Migrations&lt;/b&gt;&lt;p&gt;This squashes migrations of an application of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
--- a/ProjectDjango/i18n/django_en.ts	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/i18n/django_en.ts	Mon Dec 19 20:22:37 2016 +0100
@@ -218,32 +218,32 @@
 <context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="69"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="68"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -253,47 +253,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="75"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
         <source>&amp;Refresh</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="85"/>
         <source>Press to refresh the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="288"/>
         <source>Apply All Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="302"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
         <source>Make Migrations (dry-run)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
         <translation type="unfinished"></translation>
     </message>
@@ -467,6 +467,49 @@
     </message>
 </context>
 <context>
+    <name>DjangoSquashMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="14"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="23"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="36"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="43"/>
+        <source>Start Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="76"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="63"/>
+        <source>End Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="83"/>
+        <source>Select to not optimize the squashed migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="86"/>
+        <source>Dont&apos; optimize</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Project</name>
     <message>
         <location filename="../Project.py" line="115"/>
@@ -564,7 +607,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Run Web-Browser</source>
         <translation type="unfinished"></translation>
     </message>
@@ -584,7 +627,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2460"/>
+        <location filename="../Project.py" line="2519"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -624,7 +667,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>About Django</source>
         <translation type="unfinished"></translation>
     </message>
@@ -724,7 +767,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2095"/>
+        <location filename="../Project.py" line="2111"/>
         <source>Create Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -744,7 +787,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2102"/>
+        <location filename="../Project.py" line="2118"/>
         <source>Create Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -764,7 +807,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2109"/>
+        <location filename="../Project.py" line="2125"/>
         <source>Create Everything</source>
         <translation type="unfinished"></translation>
     </message>
@@ -784,7 +827,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2116"/>
+        <location filename="../Project.py" line="2132"/>
         <source>Custom Statements</source>
         <translation type="unfinished"></translation>
     </message>
@@ -804,7 +847,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2123"/>
+        <location filename="../Project.py" line="2139"/>
         <source>Drop Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -824,7 +867,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2137"/>
+        <location filename="../Project.py" line="2153"/>
         <source>Flush Database</source>
         <translation type="unfinished"></translation>
     </message>
@@ -844,7 +887,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2144"/>
+        <location filename="../Project.py" line="2160"/>
         <source>Reset Sequences</source>
         <translation type="unfinished"></translation>
     </message>
@@ -864,7 +907,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2361"/>
+        <location filename="../Project.py" line="2420"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -884,7 +927,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2382"/>
+        <location filename="../Project.py" line="2441"/>
         <source>Cleanup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -904,7 +947,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2405"/>
+        <location filename="../Project.py" line="2464"/>
         <source>Validate</source>
         <translation type="unfinished"></translation>
     </message>
@@ -944,7 +987,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2556"/>
         <source>Dump Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -964,7 +1007,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2536"/>
+        <location filename="../Project.py" line="2595"/>
         <source>Load Data</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1024,295 +1067,295 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="762"/>
+        <location filename="../Project.py" line="776"/>
         <source>D&amp;jango</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="802"/>
+        <location filename="../Project.py" line="816"/>
         <source>&amp;Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="826"/>
+        <location filename="../Project.py" line="840"/>
         <source>Show &amp;SQL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="876"/>
+        <location filename="../Project.py" line="892"/>
         <source>&amp;Tools</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="896"/>
+        <location filename="../Project.py" line="912"/>
         <source>T&amp;esting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="990"/>
+        <location filename="../Project.py" line="1006"/>
         <source>New template...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="999"/>
+        <location filename="../Project.py" line="1015"/>
         <source>Update all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1002"/>
+        <location filename="../Project.py" line="1018"/>
         <source>Update selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
+        <location filename="../Project.py" line="1022"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1009"/>
+        <location filename="../Project.py" line="1025"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1029"/>
         <source>Compile all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1016"/>
+        <location filename="../Project.py" line="1032"/>
         <source>Compile selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>New Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1077"/>
+        <location filename="../Project.py" line="1093"/>
         <source>The file already exists! Overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Select Applications</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1815"/>
+        <location filename="../Project.py" line="1831"/>
         <source>Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1555"/>
+        <location filename="../Project.py" line="1571"/>
         <source>Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Start Django</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Start Django Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1610"/>
+        <location filename="../Project.py" line="1626"/>
         <source>Django project created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Enter the name of the new Django project.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1662"/>
+        <location filename="../Project.py" line="1678"/>
         <source>Start Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1696"/>
+        <location filename="../Project.py" line="1712"/>
         <source>Django application created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Start Global Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Enter the name of the new global Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Start Local Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Enter the name of the new local Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select Project</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select the Django project to work with.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1813"/>
+        <location filename="../Project.py" line="1829"/>
         <source>None</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1818"/>
+        <location filename="../Project.py" line="1834"/>
         <source>&amp;Current Django project ({0})</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1892"/>
+        <location filename="../Project.py" line="1908"/>
         <source>The Django server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2698"/>
+        <location filename="../Project.py" line="2757"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1979"/>
+        <location filename="../Project.py" line="1995"/>
         <source>Introspect Database</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2008"/>
+        <location filename="../Project.py" line="2024"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2020"/>
+        <location filename="../Project.py" line="2036"/>
         <source>Database tables flushed successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2082"/>
+        <location filename="../Project.py" line="2098"/>
         <source>SQL Files (*.sql)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2394"/>
+        <location filename="../Project.py" line="2453"/>
         <source>Database cleaned up successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2467"/>
+        <location filename="../Project.py" line="2526"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2482"/>
+        <location filename="../Project.py" line="2541"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2520"/>
+        <location filename="../Project.py" line="2579"/>
         <source>JSON Files (*.json)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2522"/>
+        <location filename="../Project.py" line="2581"/>
         <source>XML Files (*.xml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2524"/>
+        <location filename="../Project.py" line="2583"/>
         <source>YAML Files (*.yaml)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2627"/>
+        <location filename="../Project.py" line="2686"/>
         <source>The Django test server could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2794"/>
+        <location filename="../Project.py" line="2853"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3053"/>
+        <location filename="../Project.py" line="3112"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2814"/>
+        <location filename="../Project.py" line="2873"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2926"/>
+        <location filename="../Project.py" line="2985"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3017"/>
+        <location filename="../Project.py" line="3076"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2977"/>
+        <location filename="../Project.py" line="3036"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2958"/>
+        <location filename="../Project.py" line="3017"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3043"/>
+        <location filename="../Project.py" line="3102"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3060"/>
+        <location filename="../Project.py" line="3119"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1352,7 +1395,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2713"/>
+        <location filename="../Project.py" line="2772"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1372,52 +1415,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="916"/>
+        <location filename="../Project.py" line="932"/>
         <source>&amp;Authorization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="933"/>
+        <location filename="../Project.py" line="949"/>
         <source>&amp;Session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2725"/>
+        <location filename="../Project.py" line="2784"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1679"/>
+        <location filename="../Project.py" line="1695"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="975"/>
+        <location filename="../Project.py" line="991"/>
         <source>Open with {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2130"/>
+        <location filename="../Project.py" line="2146"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1477,7 +1520,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="853"/>
+        <location filename="../Project.py" line="867"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1502,7 +1545,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2192"/>
+        <location filename="../Project.py" line="2208"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1517,7 +1560,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1537,7 +1580,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2328"/>
+        <location filename="../Project.py" line="2344"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1557,20 +1600,40 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2375"/>
         <source>No migrations available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2217"/>
+        <location filename="../Project.py" line="2233"/>
         <source>Apply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Select an application:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="2388"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="750"/>
+        <source>S&amp;quash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="755"/>
+        <source>Squash migrations of an application of the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="757"/>
+        <source>&lt;b&gt;Squash Migrations&lt;/b&gt;&lt;p&gt;This squashes migrations of an application of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
--- a/ProjectDjango/i18n/django_es.ts	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/i18n/django_es.ts	Mon Dec 19 20:22:37 2016 +0100
@@ -218,32 +218,32 @@
 <context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="69"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>Process Generation Error</source>
         <translation type="unfinished">Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished">El proceso {0} no ha podido ejecutarse. Asegúrese de que está en la ruta de búsqueda.</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="68"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -253,47 +253,47 @@
         <translation type="unfinished">Errores</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="75"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
         <source>&amp;Refresh</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="85"/>
         <source>Press to refresh the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="288"/>
         <source>Apply All Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="302"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
         <source>Make Migrations (dry-run)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
         <translation type="unfinished"></translation>
     </message>
@@ -431,7 +431,7 @@
         <translation>Seleccionar Entorno Virtual para Python 2</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/DjangoPage.ui" line="380"/>
+        <location filename="../ConfigurationPage/DjangoPage.py" line="179"/>
         <source>Translations Editor</source>
         <translation>Editor de Traducciones</translation>
     </message>
@@ -467,19 +467,62 @@
     </message>
 </context>
 <context>
+    <name>DjangoSquashMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="14"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="23"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="36"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="43"/>
+        <source>Start Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="76"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="63"/>
+        <source>End Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="83"/>
+        <source>Select to not optimize the squashed migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="86"/>
+        <source>Dont&apos; optimize</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="762"/>
+        <location filename="../Project.py" line="776"/>
         <source>D&amp;jango</source>
         <translation>D&amp;jango</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>New Form</source>
         <translation>Nuevo Formulario</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1077"/>
+        <location filename="../Project.py" line="1093"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>¡El archivo ya existe! ¿Sobreescribirlo?</translation>
     </message>
@@ -574,7 +617,7 @@
         <translation>&lt;b&gt;Iniciar Servidor&lt;/b&gt;&lt;p&gt;Inicia el servidor Web Django utilizando  &quot;manage.py runserver&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Run Web-Browser</source>
         <translation>Ejecutar Navegador Web</translation>
     </message>
@@ -594,7 +637,7 @@
         <translation>&lt;b&gt;Ejecutar Navegador Web&lt;/b&gt;&lt;p&gt;Inicia el Navegador Web  por defecto con la URL del servidor Web Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>About Django</source>
         <translation>Acerca de Django</translation>
     </message>
@@ -634,88 +677,88 @@
         <translation>&lt;b&gt;Sincronizar&lt;/b&gt;&lt;p&gt;Sincroniza la base de datos.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="802"/>
+        <location filename="../Project.py" line="816"/>
         <source>&amp;Database</source>
         <translation>Base de &amp;Datos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1815"/>
+        <location filename="../Project.py" line="1831"/>
         <source>Project</source>
         <translation>Proyecto</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1555"/>
+        <location filename="../Project.py" line="1571"/>
         <source>Application</source>
         <translation>Aplicación</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Start Django</source>
         <translation>Iniciar Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation>Seleccionar si este proyecto debería ser un Proyecto o Aplicación Django.
 &lt;br/&gt;Dejar en blanco para no seleccionar ninguno.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Start Django Project</source>
         <translation>Iniciar Proyecto Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1610"/>
+        <location filename="../Project.py" line="1626"/>
         <source>Django project created successfully.</source>
         <translation>Proyecto Django creado correctamente.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Enter the name of the new Django project.</source>
         <translation>Introduzca el nombre del nuevo proyecto Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1662"/>
+        <location filename="../Project.py" line="1678"/>
         <source>Start Django Application</source>
         <translation>Iniciar Aplicación Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1696"/>
+        <location filename="../Project.py" line="1712"/>
         <source>Django application created successfully.</source>
         <translation>Aplicación Django creada correctamente.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select Project</source>
         <translation>Seleccionar Proyecto</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select the Django project to work with.</source>
         <translation>Seleccionar el proyecto Django con el que trabajar.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1813"/>
+        <location filename="../Project.py" line="1829"/>
         <source>None</source>
         <translation>Ninguno</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1892"/>
+        <location filename="../Project.py" line="1908"/>
         <source>The Django server could not be started.</source>
         <translation>No se ha podido iniciar el servidor Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation>No se ha podido iniciar el navegador web para la url &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2698"/>
+        <location filename="../Project.py" line="2757"/>
         <source>The Django process could not be started.</source>
         <translation>No se ha podido iniciar el proceso Django.</translation>
     </message>
@@ -725,7 +768,7 @@
         <translation>&lt;b&gt;Proyecto Actual&lt;/b&gt;&lt;p&gt;Selecciona el proyecto actual. Se utiliza para cambiar de proyecto en multiproyectos Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2361"/>
+        <location filename="../Project.py" line="2420"/>
         <source>Diff Settings</source>
         <translation>Configuración de Diff</translation>
     </message>
@@ -745,7 +788,7 @@
         <translation>&lt;b&gt;Configuración de Diff&lt;/b&gt;&lt;p&gt;Muestra los cambios hechos a la configuración.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2382"/>
+        <location filename="../Project.py" line="2441"/>
         <source>Cleanup</source>
         <translation>Limpiar</translation>
     </message>
@@ -765,7 +808,7 @@
         <translation>&lt;b&gt;Limpiar&lt;/b&gt;&lt;p&gt;Limpiar datos antiguos de la base de datos.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2405"/>
+        <location filename="../Project.py" line="2464"/>
         <source>Validate</source>
         <translation>Validar</translation>
     </message>
@@ -785,27 +828,27 @@
         <translation>&lt;b&gt;Validar&lt;/b&gt;&lt;p&gt;Valida todos los modelos instalados.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="876"/>
+        <location filename="../Project.py" line="892"/>
         <source>&amp;Tools</source>
         <translation>Herramien&amp;tas</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Select Applications</source>
         <translation>Seleccionar Aplicaciones</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation>Introduzca la lista de aplicaciones separadas por espacios.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1818"/>
+        <location filename="../Project.py" line="1834"/>
         <source>&amp;Current Django project ({0})</source>
         <translation>Proyec&amp;to Django actual ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2394"/>
+        <location filename="../Project.py" line="2453"/>
         <source>Database cleaned up successfully.</source>
         <translation>Base de datos limpiada con éxito.</translation>
     </message>
@@ -830,7 +873,7 @@
         <translation>&lt;b&gt;Iniciar Consola de Python&lt;/b&gt;&lt;p&gt;Inicia un intérprete interactivo de Python.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2460"/>
+        <location filename="../Project.py" line="2519"/>
         <source>Create Cache Tables</source>
         <translation>Crear Tablas de Caché</translation>
     </message>
@@ -850,12 +893,12 @@
         <translation>&lt;b&gt;Crear Tablas de Caché&lt;/b&gt;&lt;p&gt;Crea las tablas necesarias para utilizar el backend de caché de SQL.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2467"/>
+        <location filename="../Project.py" line="2526"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation>Introduzca los nombres de las tablas de caché separadas por espacios.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2482"/>
+        <location filename="../Project.py" line="2541"/>
         <source>Cache tables created successfully.</source>
         <translation>Tablas de caché creadas con éxito.</translation>
     </message>
@@ -880,7 +923,7 @@
         <translation>&lt;b&gt;Introspección&lt;/b&gt;&lt;p&gt;Realiza introspección de las tablas en la base de datos y devuelve a un módulo de modelo de Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1979"/>
+        <location filename="../Project.py" line="1995"/>
         <source>Introspect Database</source>
         <translation>Introspección de Base de datos</translation>
     </message>
@@ -905,17 +948,17 @@
         <translation>&lt;b&gt;Flush&lt;/b&gt;&lt;p&gt;Devuelve todas las tablas de la base de datos al estado que tenían al terminar su instalación.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2137"/>
+        <location filename="../Project.py" line="2153"/>
         <source>Flush Database</source>
         <translation>Hacer Flush de la base de datos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2008"/>
+        <location filename="../Project.py" line="2024"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation>Un flush de la base de datos destruirá todos los datos. ¿Está seguro?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2020"/>
+        <location filename="../Project.py" line="2036"/>
         <source>Database tables flushed successfully.</source>
         <translation>Se ha realizado una operación flush sobre la base de datos con éxito.</translation>
     </message>
@@ -940,7 +983,7 @@
         <translation>Iniciar Consola de &amp;Cliente</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2095"/>
+        <location filename="../Project.py" line="2111"/>
         <source>Create Tables</source>
         <translation>Crear Tablas</translation>
     </message>
@@ -960,12 +1003,12 @@
         <translation>&lt;b&gt;Crear Tablas&lt;/b&gt;&lt;p&gt;Imprime las sentencias SQL CREATE TABLE para una o más aplicaciones.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="826"/>
+        <location filename="../Project.py" line="840"/>
         <source>Show &amp;SQL</source>
         <translation>Mostrar &amp;SQL</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2102"/>
+        <location filename="../Project.py" line="2118"/>
         <source>Create Indexes</source>
         <translation>Crear Índices</translation>
     </message>
@@ -980,7 +1023,7 @@
         <translation>&lt;b&gt;Crear Índices&lt;/b&gt;&lt;p&gt;Imprime las sentencias SQL CREATE INDEX para una o más aplicaciones.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2109"/>
+        <location filename="../Project.py" line="2125"/>
         <source>Create Everything</source>
         <translation>Crear Todo</translation>
     </message>
@@ -1005,7 +1048,7 @@
         <translation>Imprime las sentencias SQL CREATE INDEX para una o más aplicaciones</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2116"/>
+        <location filename="../Project.py" line="2132"/>
         <source>Custom Statements</source>
         <translation>Sentencias Personalizadas</translation>
     </message>
@@ -1025,7 +1068,7 @@
         <translation>&lt;b&gt;Sentencias Personalizadas&lt;/b&gt;&lt;p&gt;Imprime las sentencias sql personalizadas de modificación de tablas para una o más aplicaciones.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2123"/>
+        <location filename="../Project.py" line="2139"/>
         <source>Drop Tables</source>
         <translation>Borrar Tablas</translation>
     </message>
@@ -1060,7 +1103,7 @@
         <translation>&lt;b&gt;Hacer Flush de la base de datos&lt;/b&gt;&lt;p&gt;Imprime una lista de sentencias para retornar todas las tablas de la base de datos al estado que tenían despues de su instalación.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2144"/>
+        <location filename="../Project.py" line="2160"/>
         <source>Reset Sequences</source>
         <translation>Resetear Secuencias</translation>
     </message>
@@ -1080,7 +1123,7 @@
         <translation>&lt;b&gt;Resetear Secuencias&lt;/b&gt;&lt;p&gt;Imprime las sentencias SQL para resetear secuencias para una o más aplicaciones.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2556"/>
         <source>Dump Data</source>
         <translation>Volcado de Datos</translation>
     </message>
@@ -1100,32 +1143,32 @@
         <translation>&lt;b&gt;Volcado de Datos&lt;/b&gt;&lt;p&gt;Volcado de los datos de una base de datos a una fixtuer.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="896"/>
+        <location filename="../Project.py" line="912"/>
         <source>T&amp;esting</source>
         <translation>T&amp;esting</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2082"/>
+        <location filename="../Project.py" line="2098"/>
         <source>SQL Files (*.sql)</source>
         <translation>Archivos SQL (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2520"/>
+        <location filename="../Project.py" line="2579"/>
         <source>JSON Files (*.json)</source>
         <translation>Archivos JSON (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2522"/>
+        <location filename="../Project.py" line="2581"/>
         <source>XML Files (*.xml)</source>
         <translation>Archivos XML (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2524"/>
+        <location filename="../Project.py" line="2583"/>
         <source>YAML Files (*.yaml)</source>
         <translation>Archivos YAML (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2536"/>
+        <location filename="../Project.py" line="2595"/>
         <source>Load Data</source>
         <translation>Cargar Datos</translation>
     </message>
@@ -1185,7 +1228,7 @@
         <translation>&lt;b&gt;Ejecutar Testserver&lt;/b&gt;&lt;p&gt;Ejecutar un servidor de desarrollo con datos de un conjunto de fixtures.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2627"/>
+        <location filename="../Project.py" line="2686"/>
         <source>The Django test server could not be started.</source>
         <translation>No se ha podido iniciar el servidor de tests Django.</translation>
     </message>
@@ -1210,112 +1253,112 @@
         <translation>&lt;b&gt;Ayuda&lt;/b&gt;&lt;p&gt;Muestra la página de índice de ayuda de Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="990"/>
+        <location filename="../Project.py" line="1006"/>
         <source>New template...</source>
         <translation>Nueva plantilla...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="999"/>
+        <location filename="../Project.py" line="1015"/>
         <source>Update all catalogs</source>
         <translation>Actualizar todos los catálogos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1002"/>
+        <location filename="../Project.py" line="1018"/>
         <source>Update selected catalogs</source>
         <translation>Actualizar los catálogos seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1029"/>
         <source>Compile all catalogs</source>
         <translation>Compilar todos los catálogos</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1016"/>
+        <location filename="../Project.py" line="1032"/>
         <source>Compile selected catalogs</source>
         <translation>Compilar los catálogos seleccionados</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2794"/>
+        <location filename="../Project.py" line="2853"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Inicializando catálogo de mensajes para &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3053"/>
+        <location filename="../Project.py" line="3112"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation>No se ha seleccionado un sitio o no se ha creado un sitio todavía. Abortando...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2814"/>
+        <location filename="../Project.py" line="2873"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>Catálogo de mensajes iniciado con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2926"/>
+        <location filename="../Project.py" line="2985"/>
         <source>Updating message catalogs</source>
         <translation>Actualizando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3017"/>
+        <location filename="../Project.py" line="3076"/>
         <source>No locales detected. Aborting...</source>
         <translation>No se ha detectado ningún idioma. Abortando...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2977"/>
+        <location filename="../Project.py" line="3036"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Catálogos de mensajes actualizados con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3043"/>
+        <location filename="../Project.py" line="3102"/>
         <source>Compiling message catalogs</source>
         <translation>Compilando catálogos de mensajes</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3060"/>
+        <location filename="../Project.py" line="3119"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>
 Catálogos de mensajes compilados con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
+        <location filename="../Project.py" line="1022"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation>Acutalizar todos los catálogos (con obsoletos)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1009"/>
+        <location filename="../Project.py" line="1025"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation>Actualizar los catálogos seleccionados (con obsoletos)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Start Global Django Application</source>
         <translation>Iniciar Aplicación Global Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Enter the name of the new global Django application.</source>
         <translation>Introducir el nombre de la nueva aplicación global Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Start Local Django Application</source>
         <translation>Iniciar Aplicación Local Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Enter the name of the new local Django application.</source>
         <translation>Introducir el nombre de la nueva aplicación local Django.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2958"/>
+        <location filename="../Project.py" line="3017"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation>Actualizando los catálogos de mensajes (conservando mensajes obsoletos)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Change Password</source>
         <translation>Cambiar Contraseña</translation>
     </message>
@@ -1355,7 +1398,7 @@
         <translation>&lt;b&gt;Crear Superusuario&lt;/b&gt;&lt;p&gt;Crear una cuenta de superusuario para el proyecto Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2713"/>
+        <location filename="../Project.py" line="2772"/>
         <source>Clear Sessions</source>
         <translation>Limpiar Sesiones</translation>
     </message>
@@ -1375,52 +1418,52 @@
         <translation>&lt;b&gt;Limpiar Sesiones&lt;/b&gt;&lt;p&gt;Limpiar sesiones expiradas del proyecto Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="916"/>
+        <location filename="../Project.py" line="932"/>
         <source>&amp;Authorization</source>
         <translation>&amp;Autorización</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="933"/>
+        <location filename="../Project.py" line="949"/>
         <source>&amp;Session</source>
         <translation>&amp;Sesión</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Enter the name of the user:</source>
         <translation>Introducir el nombre del usuario:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2725"/>
+        <location filename="../Project.py" line="2784"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Sesiones expiradas limpiadas con éxito.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Django es un Web framework de alto nivel que fomenta un rápido desarrollo y un diseño limpio y pragmático.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Versión:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1679"/>
+        <location filename="../Project.py" line="1695"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;El script &lt;b&gt;django-admin.py&lt;/b&gt; no está en la ruta. Abortando...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="975"/>
+        <location filename="../Project.py" line="991"/>
         <source>Open with {0}</source>
         <translation>Abrir con {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>El proceso para el editor de traducciones {0} no ha podido ejecutarse.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;El nuevo archivo de formulario &lt;b&gt;{0}&lt;/b&gt; no ha podido ser creado.&lt;br&gt;Problema: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2130"/>
+        <location filename="../Project.py" line="2146"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1480,7 +1523,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="853"/>
+        <location filename="../Project.py" line="867"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1505,7 +1548,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2192"/>
+        <location filename="../Project.py" line="2208"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1520,7 +1563,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,7 +1583,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2328"/>
+        <location filename="../Project.py" line="2344"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1560,20 +1603,40 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2375"/>
         <source>No migrations available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2217"/>
+        <location filename="../Project.py" line="2233"/>
         <source>Apply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Select an application:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="2388"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="750"/>
+        <source>S&amp;quash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="755"/>
+        <source>Squash migrations of an application of the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="757"/>
+        <source>&lt;b&gt;Squash Migrations&lt;/b&gt;&lt;p&gt;This squashes migrations of an application of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
--- a/ProjectDjango/i18n/django_ru.ts	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/i18n/django_ru.ts	Mon Dec 19 20:22:37 2016 +0100
@@ -218,32 +218,32 @@
 <context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="69"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>Process Generation Error</source>
         <translation type="unfinished">Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished">Процесс {0} не может быть запущен. Убедитесь, что к нему указан путь доступа.</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="68"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -253,47 +253,47 @@
         <translation type="unfinished">Ошибки</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="75"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
         <source>&amp;Refresh</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="85"/>
         <source>Press to refresh the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="288"/>
         <source>Apply All Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="302"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
         <source>Make Migrations (dry-run)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
         <translation type="unfinished"></translation>
     </message>
@@ -431,7 +431,7 @@
         <translation>Выбор виртуального окружения для Python 2</translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/DjangoPage.ui" line="380"/>
+        <location filename="../ConfigurationPage/DjangoPage.py" line="179"/>
         <source>Translations Editor</source>
         <translation>Редактор для перевода</translation>
     </message>
@@ -467,19 +467,62 @@
     </message>
 </context>
 <context>
+    <name>DjangoSquashMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="14"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="23"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="36"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="43"/>
+        <source>Start Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="76"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="63"/>
+        <source>End Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="83"/>
+        <source>Select to not optimize the squashed migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="86"/>
+        <source>Dont&apos; optimize</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Project</name>
     <message>
-        <location filename="../Project.py" line="762"/>
+        <location filename="../Project.py" line="776"/>
         <source>D&amp;jango</source>
         <translation>D&amp;jango</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>New Form</source>
         <translation>Создание новой формы</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1077"/>
+        <location filename="../Project.py" line="1093"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>Файл уже существует! Переписать его?</translation>
     </message>
@@ -574,7 +617,7 @@
         <translation>&lt;b&gt;Сервер разработки&lt;/b&gt;&lt;p&gt;Запуск Django Web сервера разработки посредством команды: &quot;manage.py runserver&quot;.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Run Web-Browser</source>
         <translation>Запуск Web-браузера администрирования</translation>
     </message>
@@ -594,7 +637,7 @@
         <translation>&lt;b&gt;Запуск Web-браузера&lt;/b&gt;&lt;p&gt;Запуск Web-браузера, используемого по умолчанию, с адресом Django Web сервера.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>About Django</source>
         <translation>О Django</translation>
     </message>
@@ -634,87 +677,87 @@
         <translation>&lt;b&gt;Синхронизация&lt;/b&gt;&lt;p&gt;Синхронизация базы данных.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="802"/>
+        <location filename="../Project.py" line="816"/>
         <source>&amp;Database</source>
         <translation>&amp;База данных</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1815"/>
+        <location filename="../Project.py" line="1831"/>
         <source>Project</source>
         <translation>Project</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1555"/>
+        <location filename="../Project.py" line="1571"/>
         <source>Application</source>
         <translation>Application</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Start Django</source>
         <translation>Старт Django</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation>Сделайте соответствующий выбор, если это  будет Django проект или приложение.&lt;br/&gt;Если нет - выберите пустой ввод.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Start Django Project</source>
         <translation>Создание Django проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1610"/>
+        <location filename="../Project.py" line="1626"/>
         <source>Django project created successfully.</source>
         <translation>Django проект успешно создан.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Enter the name of the new Django project.</source>
         <translation>Введите имя нового Django проекта.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1662"/>
+        <location filename="../Project.py" line="1678"/>
         <source>Start Django Application</source>
         <translation>Создание Django приложения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1696"/>
+        <location filename="../Project.py" line="1712"/>
         <source>Django application created successfully.</source>
         <translation>Django приложение успешно создано.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select Project</source>
         <translation>Выбор проекта</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select the Django project to work with.</source>
         <translation>Выбор Django проекта для работы.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1813"/>
+        <location filename="../Project.py" line="1829"/>
         <source>None</source>
         <translation>none</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>Process Generation Error</source>
         <translation>Ошибка при запуске процесса</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1892"/>
+        <location filename="../Project.py" line="1908"/>
         <source>The Django server could not be started.</source>
         <translation>Невозможно запустить Django сервер.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation>Невозможно открыть web-браузер с адресом &quot;{0}&quot;.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2698"/>
+        <location filename="../Project.py" line="2757"/>
         <source>The Django process could not be started.</source>
         <translation>Невозможно запустить Django процесс.</translation>
     </message>
@@ -724,7 +767,7 @@
         <translation>&lt;b&gt;Текущий проект&lt;/b&gt;&lt;p&gt;Выберите текущий проект. Используется в мультипроекте Django проектов для переключения между ними.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2361"/>
+        <location filename="../Project.py" line="2420"/>
         <source>Diff Settings</source>
         <translation>Отличие текущих параметров от параметров настройки Django по умолчанию</translation>
     </message>
@@ -744,7 +787,7 @@
         <translation>&lt;b&gt;Различия настройки&lt;/b&gt;&lt;p&gt;Показ изменений, сделанных в параметрах настройки.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2382"/>
+        <location filename="../Project.py" line="2441"/>
         <source>Cleanup</source>
         <translation>Очистка</translation>
     </message>
@@ -764,7 +807,7 @@
         <translation>&lt;b&gt;Очистка&lt;/b&gt;&lt;p&gt;Очистка базы данных от старых данных.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2405"/>
+        <location filename="../Project.py" line="2464"/>
         <source>Validate</source>
         <translation>Проверка</translation>
     </message>
@@ -784,27 +827,27 @@
         <translation>&lt;b&gt;Проверка&lt;/b&gt;&lt;p&gt;Проверка всех установленных модулей.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="876"/>
+        <location filename="../Project.py" line="892"/>
         <source>&amp;Tools</source>
         <translation>&amp;Сервис</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Select Applications</source>
         <translation>Выбор приложений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation>Введите список приложений, разделенных пробелами.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1818"/>
+        <location filename="../Project.py" line="1834"/>
         <source>&amp;Current Django project ({0})</source>
         <translation>Текущий &amp;Django проект ({0})</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2394"/>
+        <location filename="../Project.py" line="2453"/>
         <source>Database cleaned up successfully.</source>
         <translation>База данных очищена успешно.</translation>
     </message>
@@ -829,7 +872,7 @@
         <translation>&lt;b&gt;Запуск консоли Python&lt;/b&gt;&lt;p&gt;Запуск интерактивного интерпретатора Python.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2460"/>
+        <location filename="../Project.py" line="2519"/>
         <source>Create Cache Tables</source>
         <translation>Создание кэша таблиц</translation>
     </message>
@@ -849,12 +892,12 @@
         <translation>&lt;b&gt;Создание кэша таблиц&lt;/b&gt;&lt;p&gt;Для создания таблиц необходимо использовать  SQL кэш бэкенд.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2467"/>
+        <location filename="../Project.py" line="2526"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation>Введите имена таблиц кэша, разделенных пробелами.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2482"/>
+        <location filename="../Project.py" line="2541"/>
         <source>Cache tables created successfully.</source>
         <translation>Кэш таблиц создан успешно.</translation>
     </message>
@@ -879,7 +922,7 @@
         <translation>&lt;b&gt;Анализ таблиц базы данных&lt;/b&gt;&lt;p&gt;Анализ таблиц базы данных, определение структуры и вывод кода модуля Django моделей.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1979"/>
+        <location filename="../Project.py" line="1995"/>
         <source>Introspect Database</source>
         <translation>Анализ таблиц базы данных и генерация кода модуля Django моделей</translation>
     </message>
@@ -904,17 +947,17 @@
         <translation>&lt;b&gt;Очистка&lt;/b&gt;&lt;p&gt;Возврат всех таблиц базы данных к состоянию на момент инсталяции базы.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2137"/>
+        <location filename="../Project.py" line="2153"/>
         <source>Flush Database</source>
         <translation>Очистка базы данных</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2008"/>
+        <location filename="../Project.py" line="2024"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation>Очистка  базы данных приведет к уничтожению всех данных. Вы действительно этого хотите?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2020"/>
+        <location filename="../Project.py" line="2036"/>
         <source>Database tables flushed successfully.</source>
         <translation>Таблицы базы данных успешно очищены.</translation>
     </message>
@@ -939,7 +982,7 @@
         <translation>Старт консоли &amp;клиента</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2095"/>
+        <location filename="../Project.py" line="2111"/>
         <source>Create Tables</source>
         <translation>Создание таблиц</translation>
     </message>
@@ -959,12 +1002,12 @@
         <translation>&lt;b&gt;Создание таблиц&lt;/b&gt;&lt;p&gt;Вывод SQL операторов CREATE TABLE для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="826"/>
+        <location filename="../Project.py" line="840"/>
         <source>Show &amp;SQL</source>
         <translation>&amp;SQL</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2102"/>
+        <location filename="../Project.py" line="2118"/>
         <source>Create Indexes</source>
         <translation>Создание индексов</translation>
     </message>
@@ -979,7 +1022,7 @@
         <translation>&lt;b&gt;Создание индексов&lt;/b&gt;&lt;p&gt;Вывод SQL операторов CREATE INDEX для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2109"/>
+        <location filename="../Project.py" line="2125"/>
         <source>Create Everything</source>
         <translation>Создать все</translation>
     </message>
@@ -1004,7 +1047,7 @@
         <translation>Выводит SQL операторы CREATE INDEX для одного или нескольких приложений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2116"/>
+        <location filename="../Project.py" line="2132"/>
         <source>Custom Statements</source>
         <translation>Пользовательские запросы</translation>
     </message>
@@ -1024,7 +1067,7 @@
         <translation>&lt;b&gt;Пользовательские запросы&lt;/b&gt;&lt;p&gt;Вывод дополнительной таблицы, модифицированной SQL запросами. для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2123"/>
+        <location filename="../Project.py" line="2139"/>
         <source>Drop Tables</source>
         <translation>Удаление таблиц</translation>
     </message>
@@ -1059,7 +1102,7 @@
         <translation>&lt;b&gt;Очистка базы данных&lt;/b&gt;&lt;p&gt;Вывод списка SQL операторов для возврата всех таблиц  базы данных к состоянию на момент ее инсталяции.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2144"/>
+        <location filename="../Project.py" line="2160"/>
         <source>Reset Sequences</source>
         <translation>Сброс цепочки</translation>
     </message>
@@ -1079,7 +1122,7 @@
         <translation>&lt;b&gt;Сброс цепочки&lt;/b&gt;&lt;p&gt;Вывод SQL операторов для сброса последовательности для одного или нескольких приложений.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2556"/>
         <source>Dump Data</source>
         <translation>Выводит текущие данные из базы данных</translation>
     </message>
@@ -1099,32 +1142,32 @@
         <translation>&lt;b&gt;Выгрузка данных&lt;/b&gt;&lt;p&gt;Выгружает текущие данные базы данных в файлы оснастки.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="896"/>
+        <location filename="../Project.py" line="912"/>
         <source>T&amp;esting</source>
         <translation>Т&amp;естирование</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2082"/>
+        <location filename="../Project.py" line="2098"/>
         <source>SQL Files (*.sql)</source>
         <translation>SQL Files (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2520"/>
+        <location filename="../Project.py" line="2579"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Files (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2522"/>
+        <location filename="../Project.py" line="2581"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Files (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2524"/>
+        <location filename="../Project.py" line="2583"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Files (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2536"/>
+        <location filename="../Project.py" line="2595"/>
         <source>Load Data</source>
         <translation>Загрузка данных в базу данных из файлов оснастки</translation>
     </message>
@@ -1184,7 +1227,7 @@
         <translation>&lt;b&gt;Запуск сервера тестов&lt;/b&gt;&lt;p&gt;Запуск сервера разработки с данными из набора оснастки.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2627"/>
+        <location filename="../Project.py" line="2686"/>
         <source>The Django test server could not be started.</source>
         <translation>Невозможно запустить Django сервер тестов.</translation>
     </message>
@@ -1209,105 +1252,105 @@
         <translation>&lt;b&gt;Справка&lt;/b&gt;&lt;p&gt;Показ страницы индексов справки  Django.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="990"/>
+        <location filename="../Project.py" line="1006"/>
         <source>New template...</source>
         <translation>Новый шаблон...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="999"/>
+        <location filename="../Project.py" line="1015"/>
         <source>Update all catalogs</source>
         <translation>Обновить все каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1002"/>
+        <location filename="../Project.py" line="1018"/>
         <source>Update selected catalogs</source>
         <translation>Обновить выбранные каталоги</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1029"/>
         <source>Compile all catalogs</source>
         <translation>Компиляция всех каталогов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1016"/>
+        <location filename="../Project.py" line="1032"/>
         <source>Compile selected catalogs</source>
         <translation>Компиляция выбранных каталогов</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2794"/>
+        <location filename="../Project.py" line="2853"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation>Инициализация каталога сообщений для &apos;{0}&apos;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3053"/>
+        <location filename="../Project.py" line="3112"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation>Текущий сайт не выбран или еще не создан. Прерывание выполнения...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2926"/>
+        <location filename="../Project.py" line="2985"/>
         <source>Updating message catalogs</source>
         <translation>Обновление каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3017"/>
+        <location filename="../Project.py" line="3076"/>
         <source>No locales detected. Aborting...</source>
         <translation>Локали не найдены. Прерывание выполнения...</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2977"/>
+        <location filename="../Project.py" line="3036"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation>
 Каталоги сообщений успешно обновлены.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3043"/>
+        <location filename="../Project.py" line="3102"/>
         <source>Compiling message catalogs</source>
         <translation>Компиляция каталогов сообщений</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3060"/>
+        <location filename="../Project.py" line="3119"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation>Каталоги сообщений успешно компилированы.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
+        <location filename="../Project.py" line="1022"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation>Обновить все каталоги (с устаревшими)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1009"/>
+        <location filename="../Project.py" line="1025"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation>Обновить выбранные каталоги (с устаревшими)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Start Global Django Application</source>
         <translation>Выполнение Django global приложения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Enter the name of the new global Django application.</source>
         <translation>Введите имя нового Djangо global приложения. </translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Start Local Django Application</source>
         <translation>Выполнение Django local приложения</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Enter the name of the new local Django application.</source>
         <translation>Введите имя нового Django local приложения. </translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2958"/>
+        <location filename="../Project.py" line="3017"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation>Обновление каталогов сообщений (с сохранением устаревших сообщений)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Change Password</source>
         <translation>Смена пароля</translation>
     </message>
@@ -1347,7 +1390,7 @@
         <translation>&lt;b&gt;Создание суперпользователя&lt;/b&gt;&lt;p&gt;Создание аккаунта суперпользователя для Django проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2713"/>
+        <location filename="../Project.py" line="2772"/>
         <source>Clear Sessions</source>
         <translation>Очистка сессии</translation>
     </message>
@@ -1367,58 +1410,58 @@
         <translation>&lt;b&gt;Очистка сессий&lt;/b&gt;&lt;p&gt;Очистка истекших сессий Django проекта.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="916"/>
+        <location filename="../Project.py" line="932"/>
         <source>&amp;Authorization</source>
         <translation>&amp;Авторизация</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="933"/>
+        <location filename="../Project.py" line="949"/>
         <source>&amp;Session</source>
         <translation>&amp;Сессия</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Enter the name of the user:</source>
         <translation>Введите имя пользователя:</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2725"/>
+        <location filename="../Project.py" line="2784"/>
         <source>Expired sessions cleared successfully.</source>
         <translation>Истекшая сессия успешно очищена.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation>&lt;p&gt;Django это высокоуровневый веб фреймворк созданный на Python, воодушевляющий к развитому, чистому и практичному дизайну.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Версия:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1679"/>
+        <location filename="../Project.py" line="1695"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation>&lt;p&gt;Скрипт &lt;b&gt;django-admin.py&lt;/b&gt; не найден в путях доступа. Прерывание...&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="975"/>
+        <location filename="../Project.py" line="991"/>
         <source>Open with {0}</source>
         <translation>Открыть с помощью {0}</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation>Невозможен запуск редактора переводов ({0}).</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Невозможно создать файл новой формы &lt;b&gt;{0}&lt;/b&gt;.&lt;br&gt; Проблема: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2814"/>
+        <location filename="../Project.py" line="2873"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation>Каталог сообщений успешно инициализирован.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2130"/>
+        <location filename="../Project.py" line="2146"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1478,7 +1521,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="853"/>
+        <location filename="../Project.py" line="867"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1503,7 +1546,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2192"/>
+        <location filename="../Project.py" line="2208"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1518,7 +1561,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1538,7 +1581,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2328"/>
+        <location filename="../Project.py" line="2344"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1558,20 +1601,40 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2375"/>
         <source>No migrations available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2217"/>
+        <location filename="../Project.py" line="2233"/>
         <source>Apply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Select an application:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="2388"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="750"/>
+        <source>S&amp;quash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="755"/>
+        <source>Squash migrations of an application of the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="757"/>
+        <source>&lt;b&gt;Squash Migrations&lt;/b&gt;&lt;p&gt;This squashes migrations of an application of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>
--- a/ProjectDjango/i18n/django_tr.ts	Mon Dec 19 19:26:40 2016 +0100
+++ b/ProjectDjango/i18n/django_tr.ts	Mon Dec 19 20:22:37 2016 +0100
@@ -218,32 +218,32 @@
 <context>
     <name>DjangoMigrationsListDialog</name>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="67"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="69"/>
         <source>Name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Migration</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="74"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="76"/>
         <source>Dependencies</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>Process Generation Error</source>
         <translation type="unfinished">İşlem Üretecinde Hata</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="174"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="176"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished">{0} işlemi başlatılamadı.Büyük ihtimalle, problem arama yolunda.</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="66"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="68"/>
         <source>Available Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -253,47 +253,47 @@
         <translation type="unfinished">Hatalar</translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="73"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="75"/>
         <source>Migrations Plan</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="81"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
         <source>&amp;Refresh</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="83"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="85"/>
         <source>Press to refresh the list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="286"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="288"/>
         <source>Apply All Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="312"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="314"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="300"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="302"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="307"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="309"/>
         <source>Make Migrations (dry-run)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../DjangoMigrationsListDialog.py" line="370"/>
+        <location filename="../DjangoMigrationsListDialog.py" line="372"/>
         <source>Enter a name for the migrations (leave empty to use system supplied name):</source>
         <translation type="unfinished"></translation>
     </message>
@@ -431,7 +431,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../ConfigurationPage/DjangoPage.ui" line="380"/>
+        <location filename="../ConfigurationPage/DjangoPage.py" line="179"/>
         <source>Translations Editor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -467,6 +467,49 @@
     </message>
 </context>
 <context>
+    <name>DjangoSquashMigrationSelectionDialog</name>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="14"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="23"/>
+        <source>Application:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="36"/>
+        <source>Select the application</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="43"/>
+        <source>Start Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="76"/>
+        <source>Select a migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="63"/>
+        <source>End Migration:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="83"/>
+        <source>Select to not optimize the squashed migration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../DjangoSquashMigrationSelectionDialog.ui" line="86"/>
+        <source>Dont&apos; optimize</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Project</name>
     <message>
         <location filename="../Project.py" line="115"/>
@@ -564,7 +607,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Run Web-Browser</source>
         <translation>Web-Gözatıcısını Çalıştır</translation>
     </message>
@@ -584,7 +627,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2460"/>
+        <location filename="../Project.py" line="2519"/>
         <source>Create Cache Tables</source>
         <translation type="unfinished">Gizli Tabloları Oluştur</translation>
     </message>
@@ -604,7 +647,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>About Django</source>
         <translation>Django Hakkında</translation>
     </message>
@@ -704,7 +747,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2095"/>
+        <location filename="../Project.py" line="2111"/>
         <source>Create Tables</source>
         <translation>Tabloyu Oluştur</translation>
     </message>
@@ -724,7 +767,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2102"/>
+        <location filename="../Project.py" line="2118"/>
         <source>Create Indexes</source>
         <translation>Katalogları oluştur</translation>
     </message>
@@ -744,7 +787,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2109"/>
+        <location filename="../Project.py" line="2125"/>
         <source>Create Everything</source>
         <translation>Herşeyi Oluştur</translation>
     </message>
@@ -764,7 +807,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2116"/>
+        <location filename="../Project.py" line="2132"/>
         <source>Custom Statements</source>
         <translation>Özel İfadeler</translation>
     </message>
@@ -784,7 +827,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2123"/>
+        <location filename="../Project.py" line="2139"/>
         <source>Drop Tables</source>
         <translation type="unfinished"></translation>
     </message>
@@ -804,7 +847,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2137"/>
+        <location filename="../Project.py" line="2153"/>
         <source>Flush Database</source>
         <translation type="unfinished"></translation>
     </message>
@@ -824,7 +867,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2144"/>
+        <location filename="../Project.py" line="2160"/>
         <source>Reset Sequences</source>
         <translation type="unfinished"></translation>
     </message>
@@ -844,7 +887,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2361"/>
+        <location filename="../Project.py" line="2420"/>
         <source>Diff Settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -864,7 +907,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2382"/>
+        <location filename="../Project.py" line="2441"/>
         <source>Cleanup</source>
         <translation>Tasfiye</translation>
     </message>
@@ -884,7 +927,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2405"/>
+        <location filename="../Project.py" line="2464"/>
         <source>Validate</source>
         <translation>Geçerli</translation>
     </message>
@@ -924,7 +967,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2497"/>
+        <location filename="../Project.py" line="2556"/>
         <source>Dump Data</source>
         <translation>Boş Veri</translation>
     </message>
@@ -944,7 +987,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2536"/>
+        <location filename="../Project.py" line="2595"/>
         <source>Load Data</source>
         <translation>Veriyi Yükle</translation>
     </message>
@@ -1004,187 +1047,187 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="762"/>
+        <location filename="../Project.py" line="776"/>
         <source>D&amp;jango</source>
         <translation>D&amp;jango</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="802"/>
+        <location filename="../Project.py" line="816"/>
         <source>&amp;Database</source>
         <translation>&amp;Veritabanı</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="826"/>
+        <location filename="../Project.py" line="840"/>
         <source>Show &amp;SQL</source>
         <translation>&amp;SQL u göster</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="876"/>
+        <location filename="../Project.py" line="892"/>
         <source>&amp;Tools</source>
         <translation>&amp;Araçlar</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="896"/>
+        <location filename="../Project.py" line="912"/>
         <source>T&amp;esting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>New Form</source>
         <translation>Yeni Form</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1077"/>
+        <location filename="../Project.py" line="1093"/>
         <source>The file already exists! Overwrite it?</source>
         <translation>Bu dosya halihazırda var! Üzerine yazılsın mı?</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Select Applications</source>
         <translation>Uygulamayı Seç</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1460"/>
+        <location filename="../Project.py" line="1476"/>
         <source>Enter the list of applications separated by spaces.</source>
         <translation>Uygulamaların listesin boşluklarla ayırarak giriniz.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1815"/>
+        <location filename="../Project.py" line="1831"/>
         <source>Project</source>
         <translation>Proje</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1555"/>
+        <location filename="../Project.py" line="1571"/>
         <source>Application</source>
         <translation>Uygulama</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Start Django</source>
         <translation>Djangoyu Başlat</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1557"/>
+        <location filename="../Project.py" line="1573"/>
         <source>Select if this project should be a Django Project or Application.&lt;br /&gt;Select the empty entry for none.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Start Django Project</source>
         <translation>Django Projesini Başlat</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1610"/>
+        <location filename="../Project.py" line="1626"/>
         <source>Django project created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1634"/>
+        <location filename="../Project.py" line="1650"/>
         <source>Enter the name of the new Django project.</source>
         <translation>Yeni Django projesinin adını giriniz.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1662"/>
+        <location filename="../Project.py" line="1678"/>
         <source>Start Django Application</source>
         <translation>Django Uygulamasını Başlat</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1696"/>
+        <location filename="../Project.py" line="1712"/>
         <source>Django application created successfully.</source>
         <translation>Django uygulaması başarıyla oluşturuldu.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select Project</source>
         <translation>Projeyi Seç</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1779"/>
+        <location filename="../Project.py" line="1795"/>
         <source>Select the Django project to work with.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1813"/>
+        <location filename="../Project.py" line="1829"/>
         <source>None</source>
         <translation>Yok</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1818"/>
+        <location filename="../Project.py" line="1834"/>
         <source>&amp;Current Django project ({0})</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>Process Generation Error</source>
         <translation>İşlem Üretecinde Hata</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1892"/>
+        <location filename="../Project.py" line="1908"/>
         <source>The Django server could not be started.</source>
         <translation>Django sunucusu başlatılamadı.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1938"/>
+        <location filename="../Project.py" line="1954"/>
         <source>Could not start the web-browser for the url &quot;{0}&quot;.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2698"/>
+        <location filename="../Project.py" line="2757"/>
         <source>The Django process could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1979"/>
+        <location filename="../Project.py" line="1995"/>
         <source>Introspect Database</source>
         <translation>Veritabanı İnceleme</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2008"/>
+        <location filename="../Project.py" line="2024"/>
         <source>Flushing the database will destroy all data. Are you sure?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2020"/>
+        <location filename="../Project.py" line="2036"/>
         <source>Database tables flushed successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2082"/>
+        <location filename="../Project.py" line="2098"/>
         <source>SQL Files (*.sql)</source>
         <translation>SQL Dosyaları (*.sql)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2394"/>
+        <location filename="../Project.py" line="2453"/>
         <source>Database cleaned up successfully.</source>
         <translation>Veritabanı başarıyla temizlendi.</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2467"/>
+        <location filename="../Project.py" line="2526"/>
         <source>Enter the names of the cache tables separated by spaces.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2482"/>
+        <location filename="../Project.py" line="2541"/>
         <source>Cache tables created successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2520"/>
+        <location filename="../Project.py" line="2579"/>
         <source>JSON Files (*.json)</source>
         <translation>JSON Dosyaları (*.json)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2522"/>
+        <location filename="../Project.py" line="2581"/>
         <source>XML Files (*.xml)</source>
         <translation>XML Dosyaları (*.xml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2524"/>
+        <location filename="../Project.py" line="2583"/>
         <source>YAML Files (*.yaml)</source>
         <translation>YAML Dosyaları (*.yaml)</translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2627"/>
+        <location filename="../Project.py" line="2686"/>
         <source>The Django test server could not be started.</source>
         <translation>Django testsunucusu çalıştırılamadı.</translation>
     </message>
@@ -1209,110 +1252,110 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="990"/>
+        <location filename="../Project.py" line="1006"/>
         <source>New template...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="999"/>
+        <location filename="../Project.py" line="1015"/>
         <source>Update all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1002"/>
+        <location filename="../Project.py" line="1018"/>
         <source>Update selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1013"/>
+        <location filename="../Project.py" line="1029"/>
         <source>Compile all catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1016"/>
+        <location filename="../Project.py" line="1032"/>
         <source>Compile selected catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2794"/>
+        <location filename="../Project.py" line="2853"/>
         <source>Initializing message catalog for &apos;{0}&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3053"/>
+        <location filename="../Project.py" line="3112"/>
         <source>No current site selected or no site created yet. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2814"/>
+        <location filename="../Project.py" line="2873"/>
         <source>
 Message catalog initialized successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2926"/>
+        <location filename="../Project.py" line="2985"/>
         <source>Updating message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3017"/>
+        <location filename="../Project.py" line="3076"/>
         <source>No locales detected. Aborting...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2977"/>
+        <location filename="../Project.py" line="3036"/>
         <source>
 Message catalogs updated successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3043"/>
+        <location filename="../Project.py" line="3102"/>
         <source>Compiling message catalogs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3060"/>
+        <location filename="../Project.py" line="3119"/>
         <source>
 Message catalogs compiled successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1006"/>
+        <location filename="../Project.py" line="1022"/>
         <source>Update all catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1009"/>
+        <location filename="../Project.py" line="1025"/>
         <source>Update selected catalogs (with obsolete)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Start Global Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1708"/>
+        <location filename="../Project.py" line="1724"/>
         <source>Enter the name of the new global Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Start Local Django Application</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1730"/>
+        <location filename="../Project.py" line="1746"/>
         <source>Enter the name of the new local Django application.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2958"/>
+        <location filename="../Project.py" line="3017"/>
         <source>Updating message catalogs (keeping obsolete messages)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Change Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1352,7 +1395,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2713"/>
+        <location filename="../Project.py" line="2772"/>
         <source>Clear Sessions</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1372,52 +1415,52 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="916"/>
+        <location filename="../Project.py" line="932"/>
         <source>&amp;Authorization</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="933"/>
+        <location filename="../Project.py" line="949"/>
         <source>&amp;Session</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2657"/>
+        <location filename="../Project.py" line="2716"/>
         <source>Enter the name of the user:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2725"/>
+        <location filename="../Project.py" line="2784"/>
         <source>Expired sessions cleared successfully.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1389"/>
+        <location filename="../Project.py" line="1405"/>
         <source>&lt;p&gt;Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Version:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;URL:&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;{1}&quot;&gt;{1}&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1679"/>
+        <location filename="../Project.py" line="1695"/>
         <source>&lt;p&gt;The &lt;b&gt;django-admin.py&lt;/b&gt; script is not in the path. Aborting...&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="975"/>
+        <location filename="../Project.py" line="991"/>
         <source>Open with {0}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="3089"/>
+        <location filename="../Project.py" line="3148"/>
         <source>The translations editor process ({0}) could not be started.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="1110"/>
+        <location filename="../Project.py" line="1126"/>
         <source>&lt;p&gt;The new form file &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;br&gt; Problem: {1}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2130"/>
+        <location filename="../Project.py" line="2146"/>
         <source>Drop Indexes</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1477,7 +1520,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="853"/>
+        <location filename="../Project.py" line="867"/>
         <source>&amp;Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1502,7 +1545,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2192"/>
+        <location filename="../Project.py" line="2208"/>
         <source>Apply Selected Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1517,7 +1560,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Unapply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1537,7 +1580,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2328"/>
+        <location filename="../Project.py" line="2344"/>
         <source>Make Migrations</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1557,20 +1600,40 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2245"/>
+        <location filename="../Project.py" line="2375"/>
         <source>No migrations available.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2217"/>
+        <location filename="../Project.py" line="2233"/>
         <source>Apply Migrations</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../Project.py" line="2251"/>
+        <location filename="../Project.py" line="2267"/>
         <source>Select an application:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../Project.py" line="2388"/>
+        <source>Squash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="750"/>
+        <source>S&amp;quash Migrations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="755"/>
+        <source>Squash migrations of an application of the project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../Project.py" line="757"/>
+        <source>&lt;b&gt;Squash Migrations&lt;/b&gt;&lt;p&gt;This squashes migrations of an application of the Django project.&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ProjectDjangoPlugin</name>

eric ide

mercurial