Skip to content

Commit

Permalink
Merge 505ed69 into f609eae
Browse files Browse the repository at this point in the history
  • Loading branch information
unho committed Jun 18, 2015
2 parents f609eae + 505ed69 commit bf011a0
Show file tree
Hide file tree
Showing 26 changed files with 1,237 additions and 332 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import connection, models


class Migration(SchemaMigration):

def forwards(self, orm):
# Deleting more remnants of model 'PootleProfile'
if u'pootle_app_pootleprofile_languages' in connection.introspection.table_names():
db.delete_table('pootle_app_pootleprofile_languages')

if u'pootle_app_pootleprofile_projects' in connection.introspection.table_names():
db.delete_table('pootle_app_pootleprofile_projects')


def backwards(self, orm):
pass


models = {
u'accounts.user': {
'Meta': {'object_name': 'User'},
'_unit_rows': ('django.db.models.fields.SmallIntegerField', [], {'default': '9', 'db_column': "'unit_rows'"}),
'alt_src_langs': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_alt_src_langs'", 'blank': 'True', 'db_index': 'True', 'to': u"orm['pootle_language.Language']"}),
'bio': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.CharField', [], {'max_length': '3', 'null': 'True', 'blank': 'True'}),
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '255'}),
'full_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
'hourly_rate': ('django.db.models.fields.FloatField', [], {'default': '0'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_employee': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'linkedin': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'rate': ('django.db.models.fields.FloatField', [], {'default': '0'}),
'review_rate': ('django.db.models.fields.FloatField', [], {'default': '0'}),
'score': ('django.db.models.fields.FloatField', [], {'default': '0'}),
'twitter': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
},
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
'pootle_app.directory': {
'Meta': {'ordering': "['name']", 'object_name': 'Directory'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'obsolete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'child_dirs'", 'null': 'True', 'to': "orm['pootle_app.Directory']"}),
'pootle_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
},
u'pootle_language.language': {
'Meta': {'ordering': "['code']", 'object_name': 'Language', 'db_table': "'pootle_app_language'"},
'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
'directory': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['pootle_app.Directory']", 'unique': 'True'}),
'fullname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nplurals': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
'pluralequation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
'specialchars': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
}
}

complete_apps = ['accounts']
87 changes: 87 additions & 0 deletions pootle/apps/accounts/migrations/0009_drop_registration_remnant.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import connection, models


class Migration(SchemaMigration):

def forwards(self, orm):
# Deleting remnants of django-registration
if u'registration_registrationprofile' in connection.introspection.table_names():
db.delete_table('registration_registrationprofile')


def backwards(self, orm):
pass


models = {
u'accounts.user': {
'Meta': {'object_name': 'User'},
'_unit_rows': ('django.db.models.fields.SmallIntegerField', [], {'default': '9', 'db_column': "'unit_rows'"}),
'alt_src_langs': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_alt_src_langs'", 'blank': 'True', 'db_index': 'True', 'to': u"orm['pootle_language.Language']"}),
'bio': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'currency': ('django.db.models.fields.CharField', [], {'max_length': '3', 'null': 'True', 'blank': 'True'}),
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '255'}),
'full_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
'hourly_rate': ('django.db.models.fields.FloatField', [], {'default': '0'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_employee': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'linkedin': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'rate': ('django.db.models.fields.FloatField', [], {'default': '0'}),
'review_rate': ('django.db.models.fields.FloatField', [], {'default': '0'}),
'score': ('django.db.models.fields.FloatField', [], {'default': '0'}),
'twitter': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),
'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'})
},
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
'pootle_app.directory': {
'Meta': {'ordering': "['name']", 'object_name': 'Directory'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'obsolete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'child_dirs'", 'null': 'True', 'to': "orm['pootle_app.Directory']"}),
'pootle_path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
},
u'pootle_language.language': {
'Meta': {'ordering': "['code']", 'object_name': 'Language', 'db_table': "'pootle_app_language'"},
'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
'directory': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['pootle_app.Directory']", 'unique': 'True'}),
'fullname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'nplurals': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
'pluralequation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
'specialchars': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
}
}

complete_apps = ['accounts']
18 changes: 5 additions & 13 deletions pootle/apps/pootle_app/management/commands/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,15 @@ def handle_noargs(self, **options):
'already have have upgraded up to the 2.6.0 '
'stage, so you must now proceed now with the '
'final upgrade to Pootle 2.7.0 or later.')
elif current_buildversion < 21010:
# Trying to upgrade a deployment older than Pootle 2.1.1 for which
# we can't provide a direct upgrade.
elif current_buildversion < 22000:
# Trying to upgrade a deployment older than Pootle 2.5.0 for which
# we don't provide a direct upgrade.
raise CommandError('This Pootle installation is too old. Please '
'upgrade first to 2.1.6 before upgrading to '
'upgrade first to 2.5.1.3 before upgrading to '
'this version.')
elif current_buildversion < NEW_POOTLE_BUILD:
logging.info('Upgrading existing Pootle installation.')

if current_buildversion < 22000:
# Run only if Pootle is < 2.5.0.
call_command('updatedb')

call_command('syncdb', interactive=False)

if current_buildversion < 25100:
Expand All @@ -73,11 +69,7 @@ def handle_noargs(self, **options):
OLD_APPS = ("pootle_app", "pootle_language",
"pootle_notifications", "pootle_project",
"pootle_statistics", "pootle_store",
"pootle_translationproject")

if current_buildversion >= 22000:
# Fake the migration only if Pootle is 2.5.0.
OLD_APPS += ("staticpages", )
"pootle_translationproject", "staticpages")

for app in OLD_APPS:
call_command("migrate", app, "0001", fake=True, interactive=False)
Expand Down
3 changes: 2 additions & 1 deletion pootle/apps/pootle_app/management/commands/update_stores.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,12 @@ def handle_translation_project(self, translation_project, **options):
"""
:return: flag if child stores should be updated
"""
if not translation_project.disabled:
if not translation_project.directory.obsolete:
logging.info(u"Scanning for new files in %s", translation_project)
translation_project.scan_files()
return True

translation_project.directory.makeobsolete()
return False

def handle_store(self, store, **options):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
from pootle_app.management.commands import PootleCommand
from pootle_language.models import Language
from pootle_project.models import Project
from pootle_translationproject.models import create_or_enable_translation_project
from pootle_translationproject.models import create_or_resurrect_translation_project


def does_not_exist(path):
Expand Down Expand Up @@ -65,24 +65,26 @@ def handle_project(self, project, **options):
return

lang_query = Language.objects.exclude(
id__in=project.translationproject_set.enabled() \
id__in=project.translationproject_set.live() \
.values_list('language', flat=True)
)
for language in lang_query.iterator():
create_or_enable_translation_project(language, project)
create_or_resurrect_translation_project(language, project)

def handle_language(self, language, **options):
project_query = Project.objects.exclude(
id__in=language.translationproject_set.enabled() \
id__in=language.translationproject_set.live() \
.values_list('project', flat=True)
)
create_or_enable_translation_project
for project in project_query.iterator():
create_or_resurrect_translation_project(language, project)


def handle_translation_project(self, translation_project, **options):
clean = options.get('clean', False)
if not translation_project.disabled and \
clean and does_not_exist(translation_project.abs_real_path):
logging.info(u"Disabling %s", translation_project)
translation_project.disabled = True
translation_project.save()
translation_project.directory.obsolete = True
translation_project.directory.save()
translation_project.clear_all_cache(parents=True, children=False)
60 changes: 0 additions & 60 deletions pootle/apps/pootle_app/management/commands/updatedb.py

This file was deleted.

0 comments on commit bf011a0

Please sign in to comment.