diff --git a/fabfile.py b/fabfile.py index f111c53b..da8f4af2 100644 --- a/fabfile.py +++ b/fabfile.py @@ -131,14 +131,25 @@ def c_fix(): def stage4_firstrun(): with cd(REMOTE_HOME_DIR): + call_state('stop') run('git fetch') run('git checkout stage4') run('git checkout -- proj/settings.py') pull(with_configs=True) run('python manage.py syncdb') + run('python manage.py migrate theme') + call_state('start') def ticket1395(): # stage4 with cd(REMOTE_HOME_DIR): run('python manage.py accounts_check_url') + + +def ticket1374(): + with cd(REMOTE_HOME_DIR): + call_state('stop', only='apache2') + run('git pull') + run('python manage.py migrate theme') + call_state('start', only='apache2') diff --git a/proj/views.py b/proj/views.py index 5b987c26..86e3005a 100644 --- a/proj/views.py +++ b/proj/views.py @@ -86,8 +86,8 @@ class MainPageView(JitterCacheMixin, TemplateView): # update main_page counter for event in events: event.main.link.log(self.request, 1) - exposition_themes = Theme.objects.language().filter(main_page=True, types=Theme.types.exposition)[:6] - conference_themes = Theme.objects.language().filter(main_page=True, types=Theme.types.conference)[:6] + exposition_themes = Theme.objects.language().filter(main_page_expo__gt=0, types=Theme.types.exposition)[:6] + conference_themes = Theme.objects.language().filter(main_page_conf__gt=0, types=Theme.types.conference)[:6] args = {'events': events, 'exposition_themes': exposition_themes, 'conference_themes': conference_themes, 'search_form': ExpositionSearchForm, 'search_action': '/expo/search/', diff --git a/settings/admin.py b/settings/admin.py index d6c0aba5..92184574 100644 --- a/settings/admin.py +++ b/settings/admin.py @@ -34,8 +34,8 @@ from article.models import Article def main_page(request): - exposition_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.exposition) - confrence_themes = Theme.objects.filter(main_page__gt=0, types=Theme.types.conference) + exposition_themes = Theme.objects.filter(main_page_expo__gt=0, types=Theme.types.exposition) + confrence_themes = Theme.objects.filter(main_page_conf__gt=0, types=Theme.types.conference) news = Article.objects.news().filter(main_page=1) blogs = Article.objects.blogs().filter(main_page=1) diff --git a/settings/forms.py b/settings/forms.py index be0ec18b..4e2deb47 100644 --- a/settings/forms.py +++ b/settings/forms.py @@ -40,10 +40,8 @@ class MainPageThemes(forms.Form): data = self.cleaned_data exposition_themes = data['exposition_themes'] conference_themes = data['conference_themes'] - - Theme.objects.filter().update(main_page=0) - exposition_themes.update(main_page=1) - conference_themes.update(main_page=1) + exposition_themes.update(main_page_expo=1) + conference_themes.update(main_page_conf=1) diff --git a/theme/migrations/0004_auto__del_field_theme_main_page__add_field_theme_main_page_conf__add_f.py b/theme/migrations/0004_auto__del_field_theme_main_page__add_field_theme_main_page_conf__add_f.py new file mode 100644 index 00000000..3e5b67d8 --- /dev/null +++ b/theme/migrations/0004_auto__del_field_theme_main_page__add_field_theme_main_page_conf__add_f.py @@ -0,0 +1,83 @@ +# -*- 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 models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Deleting field 'Theme.main_page' + db.delete_column(u'theme_theme', 'main_page') + + # Adding field 'Theme.main_page_conf' + db.add_column(u'theme_theme', 'main_page_conf', + self.gf('django.db.models.fields.PositiveIntegerField')(default=0, db_index=True), + keep_default=False) + + # Adding field 'Theme.main_page_expo' + db.add_column(u'theme_theme', 'main_page_expo', + self.gf('django.db.models.fields.PositiveIntegerField')(default=0, db_index=True), + keep_default=False) + + + def backwards(self, orm): + # Adding field 'Theme.main_page' + db.add_column(u'theme_theme', 'main_page', + self.gf('django.db.models.fields.PositiveIntegerField')(default=0, db_index=True), + keep_default=False) + + # Deleting field 'Theme.main_page_conf' + db.delete_column(u'theme_theme', 'main_page_conf') + + # Deleting field 'Theme.main_page_expo' + db.delete_column(u'theme_theme', 'main_page_expo') + + + models = { + u'theme.tag': { + 'Meta': {'unique_together': '()', 'object_name': 'Tag', 'index_together': '()'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inflect': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'old_url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}), + 'theme': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tags'", 'on_delete': 'models.PROTECT', 'to': u"orm['theme.Theme']"}), + 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}) + }, + u'theme.tagtranslation': { + 'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'TagTranslation', 'db_table': "u'theme_tag_translation'", 'index_together': '()'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'descriptions': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'keywords': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), + 'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), + 'main_title': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['theme.Tag']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}) + }, + u'theme.theme': { + 'Meta': {'unique_together': '()', 'object_name': 'Theme', 'index_together': '()'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inflect': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'main_page_conf': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'db_index': 'True'}), + 'main_page_expo': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'db_index': 'True'}), + 'old_url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}), + 'types': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}), + 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}) + }, + u'theme.themetranslation': { + 'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'ThemeTranslation', 'db_table': "u'theme_theme_translation'", 'index_together': '()'}, + 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'descriptions': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'keywords': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), + 'main_title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['theme.Theme']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + } + } + + complete_apps = ['theme'] \ No newline at end of file diff --git a/theme/models.py b/theme/models.py index b7476db4..d8e1b3c5 100644 --- a/theme/models.py +++ b/theme/models.py @@ -54,7 +54,8 @@ class Theme(TranslatableModel): keywords = models.CharField(max_length=255, blank=True), ) - main_page = models.PositiveIntegerField(default=0, db_index=True) + main_page_conf = models.PositiveIntegerField(default=0, db_index=True) + main_page_expo = models.PositiveIntegerField(default=0, db_index=True) inflect = models.CharField(max_length=255, blank=True) def __unicode__(self):