diff --git a/rex/migrations/0003_currency.py b/rex/migrations/0003_currency.py new file mode 100644 index 0000000000000000000000000000000000000000..308e61105b20ca7eb2a78ca888dba2055474eec9 --- /dev/null +++ b/rex/migrations/0003_currency.py @@ -0,0 +1,23 @@ +# Generated by Django 2.0.3 on 2018-08-20 14:54 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rex', '0002_universityscholarship'), + ] + + operations = [ + migrations.CreateModel( + name='Currency', + fields=[ + ('code', models.CharField(max_length=15, primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ('symbol', models.CharField(max_length=5)), + ('one_USD_in_this_currency', models.DecimalField(decimal_places=6, max_digits=20, validators=[django.core.validators.MinValueValidator(0)])), + ], + ), + ] diff --git a/rex/models/module/__init__.py b/rex/models/module/__init__.py index 0fb0396ee29ad987d08125cc50e08a59a4788d28..ec12c7e51fdcacad6179b2c60c16f1cf26392720 100644 --- a/rex/models/module/__init__.py +++ b/rex/models/module/__init__.py @@ -1,3 +1,4 @@ from .module import Module # noqa: F401 from .basicModule import BasicModule # noqa: F401 from .scholarship import Scholarship # noqa: F401 +from .currency import Currency, CurrencyViewSet, CurrencySerializer # noqa: F401 diff --git a/rex/models/module/currency.py b/rex/models/module/currency.py new file mode 100644 index 0000000000000000000000000000000000000000..712653df2878ff1baedb530315d4c2385f9189fa --- /dev/null +++ b/rex/models/module/currency.py @@ -0,0 +1,26 @@ +from django.db import models +from rest_framework import serializers, viewsets, permissions +from django.core.validators import MinValueValidator + + +class Currency(models.Model): + code = models.CharField(primary_key=True, max_length=15) + name = models.CharField(max_length=100) + symbol = models.CharField(max_length=5) + one_USD_in_this_currency = models.DecimalField( + max_digits=20, + decimal_places=6, + validators=[MinValueValidator(0)] + ) + + +class CurrencySerializer(serializers.ModelSerializer): + class Meta: + model = Currency + fields = ('code', 'name', 'symbol', 'one_USD_in_this_currency') + + +class CurrencyViewSet(viewsets.ModelViewSet): + permission_classes = (permissions.DjangoModelPermissions,) + queryset = Currency.objects.all() # pylint: disable=E1101 + serializer_class = CurrencySerializer diff --git a/rex/urls.py b/rex/urls.py index 55bd7e5b6fb33774729fd66e3dbe27ca61065ecd..e393e5cb47dcc3aba406f38421fc72872250af13 100644 --- a/rex/urls.py +++ b/rex/urls.py @@ -3,6 +3,7 @@ from rex import views from rest_framework import routers from rex.models.location import CountryViewSet, CityViewSet from rex.models.university import CampusViewSet, UniversityViewSet, UniversityScholarshipViewSet +from rex.models.module import CurrencyViewSet from rest_framework.documentation import include_docs_urls @@ -18,5 +19,6 @@ router.register(r'city', CityViewSet) router.register(r'campus', CampusViewSet) router.register(r'university', UniversityViewSet) router.register(r'university_scholarship', UniversityScholarshipViewSet) +router.register(r'currency', CurrencyViewSet) urlpatterns += [url(r'^api/', include(router.urls))]