diff --git a/rex/admin.py b/rex/admin.py index e6670247a4ba4e73c03817476b0b494f40dce90b..9dc87fa4cd92bf98158a8b9dfba4e8f627b5f731 100644 --- a/rex/admin.py +++ b/rex/admin.py @@ -1,11 +1,13 @@ from django.contrib import admin from reversion_compare.admin import CompareVersionAdmin -from rex.models.university import University +from rex.models.university import University, MainCampus from rex.models.localization import Country, Region, City -admin.site.register(University, CompareVersionAdmin) admin.site.register(Country) admin.site.register(Region) admin.site.register(City) + +admin.site.register(University, CompareVersionAdmin) +admin.site.register(MainCampus) diff --git a/rex/migrations/0004_maincampus.py b/rex/migrations/0004_maincampus.py new file mode 100644 index 0000000000000000000000000000000000000000..3a9a4d7d1a1b0af6cfc5160db695f67df0eeb8f8 --- /dev/null +++ b/rex/migrations/0004_maincampus.py @@ -0,0 +1,32 @@ +# Generated by Django 2.0.3 on 2018-04-25 09:22 + +from django.conf import settings +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('rex', '0003_city'), + ] + + operations = [ + migrations.CreateModel( + name='MainCampus', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('modified_date', models.DateTimeField(auto_now=True)), + ('comment', models.TextField(null=True)), + ('lat', models.DecimalField(decimal_places=6, max_digits=10, validators=[django.core.validators.MinValueValidator(-85.05112878), django.core.validators.MaxValueValidator(85.05112878)])), + ('lon', models.DecimalField(decimal_places=6, max_digits=10, validators=[django.core.validators.MinValueValidator(-180), django.core.validators.MaxValueValidator(180)])), + ('city', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='rex.City')), + ('modified_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/rex/migrations/0005_auto_20180425_1131.py b/rex/migrations/0005_auto_20180425_1131.py new file mode 100644 index 0000000000000000000000000000000000000000..3309246d72a9e9bb14b04f04542abde0ef4e21b5 --- /dev/null +++ b/rex/migrations/0005_auto_20180425_1131.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.3 on 2018-04-25 09:31 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rex', '0004_maincampus'), + ] + + operations = [ + migrations.AlterField( + model_name='maincampus', + name='comment', + field=models.TextField(blank=True, null=True), + ), + ] diff --git a/rex/migrations/0006_maincampus_name.py b/rex/migrations/0006_maincampus_name.py new file mode 100644 index 0000000000000000000000000000000000000000..b689b9554fae6a0457cb48e4e085a54bb1d37546 --- /dev/null +++ b/rex/migrations/0006_maincampus_name.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.3 on 2018-04-25 09:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rex', '0005_auto_20180425_1131'), + ] + + operations = [ + migrations.AddField( + model_name='maincampus', + name='name', + field=models.CharField(max_length=200, null=True), + ), + ] diff --git a/rex/models/__init__.py b/rex/models/__init__.py index 48458e0cf42ce80d8576f6e7aa676aaa5ec3696e..29d77d8dce4cb51bb17378b4502a45d89ab821df 100644 --- a/rex/models/__init__.py +++ b/rex/models/__init__.py @@ -1,2 +1,3 @@ from .localization import localization # noqa: F401 from .university import university # noqa: F401 +from .module import module # noqa: F401 diff --git a/rex/models/module/__init__.py b/rex/models/module/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3b0b8597cf752570f4cbe9837ebc781a6f4d6f66 --- /dev/null +++ b/rex/models/module/__init__.py @@ -0,0 +1 @@ +from .module import Module # noqa: F401 diff --git a/rex/models/module/module.py b/rex/models/module/module.py new file mode 100644 index 0000000000000000000000000000000000000000..d60c9d818d963a6abfa5271c93a0a5bdb502a66b --- /dev/null +++ b/rex/models/module/module.py @@ -0,0 +1,20 @@ +from django.db import models +from rest_framework import serializers, viewsets, permissions +from django.contrib.auth.models import User + + +class Module(models.Model): + modified_date = models.DateTimeField(auto_now=True) + modified_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) + + module_icon = "You forget to override the icon in the sub-class" + module_name = "You forget to override the name in the sub-class" + module_description = "You forget to override the description in the sub-class" + + class Meta: + abstract = True + + +""" +API RELATED STUFF BELLOW +""" diff --git a/rex/models/university/__init__.py b/rex/models/university/__init__.py index b2d3412e8defb105f849fe6b5a5394f66ee13de6..7a80bf600bbd98700c6fca82599d877b4b065a3d 100644 --- a/rex/models/university/__init__.py +++ b/rex/models/university/__init__.py @@ -1 +1,2 @@ from .university import University # noqa: F401 +from .campus import MainCampus # noqa: F401 diff --git a/rex/models/university/campus.py b/rex/models/university/campus.py new file mode 100644 index 0000000000000000000000000000000000000000..5164c1d362948c9e7bbf9f2a0f14ea3174fd7ba5 --- /dev/null +++ b/rex/models/university/campus.py @@ -0,0 +1,33 @@ +from django.db import models +from rex.models.module import Module +from rex.models.localization import City +from django.core.validators import MinValueValidator, MaxValueValidator + + +class Campus(Module): + name = models.CharField(max_length=200, null=True) + comment = models.TextField(null=True, blank=True) + city = models.ForeignKey(City, on_delete=models.PROTECT, null=False) + + lat = models.DecimalField( + max_digits=10, + decimal_places=6, + validators=[MinValueValidator(-85.05112878), + MaxValueValidator(85.05112878)] + ) + + lon = models.DecimalField( + max_digits=10, + decimal_places=6, + validators=[MinValueValidator(-180), + MaxValueValidator(180)] + ) + + class Meta: + abstract = True + + +class MainCampus(Campus): + module_icon = "You forget to override the icon in the sub-class : I know" + module_name = "Campus principal" + module_description = "Campus principal de l'université."