From 5651f141035d80628d9982ecf243759cd899cef7 Mon Sep 17 00:00:00 2001 From: Ryan Northey <ryan@synca.io> Date: Mon, 16 Apr 2018 20:43:20 +0100 Subject: [PATCH 1/2] Add pootle_remote app --- pootle/apps/pootle_remote/__init__.py | 9 ++++ pootle/apps/pootle_remote/abstracts.py | 32 ++++++++++++ pootle/apps/pootle_remote/apps.py | 20 ++++++++ .../pootle_remote/migrations/0001_initial.py | 49 +++++++++++++++++++ .../apps/pootle_remote/migrations/__init__.py | 0 pootle/apps/pootle_remote/models.py | 19 +++++++ 6 files changed, 129 insertions(+) create mode 100644 pootle/apps/pootle_remote/__init__.py create mode 100644 pootle/apps/pootle_remote/abstracts.py create mode 100644 pootle/apps/pootle_remote/apps.py create mode 100644 pootle/apps/pootle_remote/migrations/0001_initial.py create mode 100644 pootle/apps/pootle_remote/migrations/__init__.py create mode 100644 pootle/apps/pootle_remote/models.py diff --git a/pootle/apps/pootle_remote/__init__.py b/pootle/apps/pootle_remote/__init__.py new file mode 100644 index 00000000000..6dd1b1ce735 --- /dev/null +++ b/pootle/apps/pootle_remote/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) Pootle contributors. +# +# This file is a part of the Pootle project. It is distributed under the GPL3 +# or later license. See the LICENSE file for a copy of the license and the +# AUTHORS file for copyright and authorship information. + +default_app_config = 'pootle_remote.apps.PootleRemoteConfig' diff --git a/pootle/apps/pootle_remote/abstracts.py b/pootle/apps/pootle_remote/abstracts.py new file mode 100644 index 00000000000..5c32d36ebd9 --- /dev/null +++ b/pootle/apps/pootle_remote/abstracts.py @@ -0,0 +1,32 @@ + +from django.db import models + +from pootle_language.models import Language + + +class AbstractRemoteSite(models.Model): + url = models.URLField() + type = models.CharField(max_length=32) + sync_frequency = models.IntegerField() + last_sync = models.DateTimeField() + update_frequency = models.IntegerField() + + class Meta(object): + abstract = True + + +class AbstractRemoteProject(models.Model): + code = models.CharField( + db_index=True, + max_length=255, + null=False, + blank=False) + fullname = models.CharField( + db_index=True, + max_length=255, + null=False, + blank=False) + languages = models.ManyToManyField(Language) + + class Meta(object): + abstract = True diff --git a/pootle/apps/pootle_remote/apps.py b/pootle/apps/pootle_remote/apps.py new file mode 100644 index 00000000000..0e6302b024d --- /dev/null +++ b/pootle/apps/pootle_remote/apps.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) Pootle contributors. +# +# This file is a part of the Pootle project. It is distributed under the GPL3 +# or later license. See the LICENSE file for a copy of the license and the +# AUTHORS file for copyright and authorship information. + +import importlib + +from django.apps import AppConfig + + +class PootleRemoteConfig(AppConfig): + name = "pootle_remote" + verbose_name = "Pootle Remote" + version = "0.0.1" + + def ready(self): + importlib.import_module("pootle_remote.models") diff --git a/pootle/apps/pootle_remote/migrations/0001_initial.py b/pootle/apps/pootle_remote/migrations/0001_initial.py new file mode 100644 index 00000000000..531246342e5 --- /dev/null +++ b/pootle/apps/pootle_remote/migrations/0001_initial.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.12 on 2018-04-16 19:41 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('pootle_language', '0003_ensure_unique_special_chars'), + ] + + operations = [ + migrations.CreateModel( + name='RemoteProject', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('code', models.CharField(db_index=True, max_length=255)), + ('fullname', models.CharField(db_index=True, max_length=255)), + ('languages', models.ManyToManyField(to='pootle_language.Language')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='RemoteSite', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('url', models.URLField()), + ('type', models.CharField(max_length=32)), + ('sync_frequency', models.IntegerField()), + ('last_sync', models.DateTimeField()), + ('update_frequency', models.IntegerField()), + ], + options={ + 'abstract': False, + }, + ), + migrations.AddField( + model_name='remoteproject', + name='site', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pootle_remote.RemoteSite'), + ), + ] diff --git a/pootle/apps/pootle_remote/migrations/__init__.py b/pootle/apps/pootle_remote/migrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/pootle/apps/pootle_remote/models.py b/pootle/apps/pootle_remote/models.py new file mode 100644 index 00000000000..84b38b7fca0 --- /dev/null +++ b/pootle/apps/pootle_remote/models.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) Pootle contributors. +# +# This file is a part of the Pootle project. It is distributed under the GPL3 +# or later license. See the LICENSE file for a copy of the license and the +# AUTHORS file for copyright and authorship information. + +from django.db import models + +from .abstracts import AbstractRemoteProject, AbstractRemoteSite + + +class RemoteSite(AbstractRemoteSite): + pass + + +class RemoteProject(AbstractRemoteProject): + site = models.ForeignKey(RemoteSite) From 15db0c8ee801b4fbfea6aa37ba8eea21b8004e07 Mon Sep 17 00:00:00 2001 From: Ryan Northey <ryan@synca.io> Date: Mon, 16 Apr 2018 20:43:39 +0100 Subject: [PATCH 2/2] Add pootle_remote to INSTALLED_APPS --- pootle/settings/50-project.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/pootle/settings/50-project.conf b/pootle/settings/50-project.conf index cd375ff096a..56416ffd1a0 100644 --- a/pootle/settings/50-project.conf +++ b/pootle/settings/50-project.conf @@ -98,6 +98,7 @@ INSTALLED_APPS = [ 'pootle_profile', 'pootle_data', 'pootle_revision', + 'pootle_remote', 'pootle_score', 'pootle_statistics', 'pootle_terminology',