Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Rex Dri
Rex Dri
Commits
c852a598
Commit
c852a598
authored
Aug 21, 2018
by
Florent Chehab
Browse files
Core modules finished
parent
d9087853
Pipeline
#26390
passed with stages
in 1 minute and 26 seconds
Changes
15
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
docs/UML/Core.pu
View file @
c852a598
...
...
@@ -38,7 +38,7 @@ package Core {
+
website
:
url
}
University
"
1
"
.
right
.
"1"
City
University
"
*
"
.
right
.
"1"
City
note
on
link
#
white
This
link
is
acheived
through
the
campus
module
...
...
@@ -50,31 +50,30 @@ package Core {
}
Class
Semester
{
+
name
:
string
+
searchable
:
bool
+
code
:
string
{
key
}
}
Class
Departement
{
Class
Department
{
+
code
:
string
+
name
:
string
+
accronyme
:
string
+
searchable
:
bool
+
active
:
bool
}
Class
Specialty
{
+
code
:
string
+
name
:
string
+
accronyme
:
string
+
searchable
:
bool
+
active
:
bool
}
Offer
"*"
-
right
-
"1"
University
Offer
"*"
-
down
-
"1"
Semester
Offer
"*"
-
left
-
"1..n"
Departement
Specialty
"1..n"
-
left
-
"1"
Depart
e
ment
Offer
"*"
-
left
-
"1..n"
Specialty
Specialty
"1..n"
-
left
-
"1"
Department
note
"Initial data inserted in db."
as
N3
Semester
..
N3
N3
..
Specialty
N3
..
Depart
e
ment
N3
..
Department
class
UsefullLinks
#
green
{
...
...
rex/admin.py
View file @
c852a598
...
...
@@ -35,12 +35,21 @@ from rex.models.university import CampusAccommodation
from
rex.models.university
import
CampusCultureAndStudentLife
from
rex.models.university
import
CampusOtherStuff
from
rex.models.tools
import
Currency
from
rex.models.module
import
Currency
from
rex.models.otherCore
import
Department
from
rex.models.otherCore
import
Offer
from
rex.models.otherCore
import
Semester
from
rex.models.otherCore
import
Specialty
CLASSIC_MODELS
=
[
Country
,
City
,
Currency
Currency
,
Department
,
Offer
,
Semester
,
Specialty
,
]
VERSIONNED_MODELS
=
[
...
...
rex/migrations/0025_auto_20180821_1647.py
0 → 100644
View file @
c852a598
# Generated by Django 2.0.3 on 2018-08-21 14:47
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'rex'
,
'0024_countrydri_universitydri'
),
]
operations
=
[
migrations
.
CreateModel
(
name
=
'Department'
,
fields
=
[
(
'code'
,
models
.
CharField
(
max_length
=
6
,
primary_key
=
True
,
serialize
=
False
)),
(
'name'
,
models
.
CharField
(
max_length
=
100
)),
(
'active'
,
models
.
BooleanField
()),
],
),
migrations
.
CreateModel
(
name
=
'Offer'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'nb_seats_offered'
,
models
.
IntegerField
()),
],
),
migrations
.
CreateModel
(
name
=
'Semester'
,
fields
=
[
(
'code'
,
models
.
CharField
(
max_length
=
6
,
primary_key
=
True
,
serialize
=
False
)),
],
),
migrations
.
CreateModel
(
name
=
'Specialty'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'code'
,
models
.
CharField
(
max_length
=
6
)),
(
'name'
,
models
.
CharField
(
max_length
=
100
)),
(
'active'
,
models
.
BooleanField
()),
(
'department'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
PROTECT
,
to
=
'rex.Department'
)),
],
),
migrations
.
AddField
(
model_name
=
'offer'
,
name
=
'semester'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
PROTECT
,
to
=
'rex.Semester'
),
),
migrations
.
AddField
(
model_name
=
'offer'
,
name
=
'specialty'
,
field
=
models
.
ManyToManyField
(
related_name
=
'has_seats_at_univ'
,
to
=
'rex.Specialty'
),
),
migrations
.
AddField
(
model_name
=
'offer'
,
name
=
'university'
,
field
=
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
PROTECT
,
to
=
'rex.University'
),
),
migrations
.
AlterUniqueTogether
(
name
=
'specialty'
,
unique_together
=
{(
'code'
,
'department'
)},
),
migrations
.
AlterUniqueTogether
(
name
=
'offer'
,
unique_together
=
{(
'semester'
,
'university'
)},
),
]
rex/models/module/__init__.py
View file @
c852a598
...
...
@@ -3,3 +3,4 @@ from .basicModule import BasicModule, BasicModuleSerializer # noqa: F401
from
.scholarship
import
Scholarship
# noqa: F401
from
.photo
import
Photo
# noqa: F401
from
.driRestrictedModule
import
DriRestrictedModule
,
DriRestrictedModuleSerializer
# noqa: F401
from
.currency
import
Currency
,
CurrencyViewSet
,
CurrencySerializer
# noqa: F401
rex/models/
tools
/currency.py
→
rex/models/
module
/currency.py
View file @
c852a598
...
...
@@ -17,10 +17,10 @@ class Currency(models.Model):
class
CurrencySerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Currency
fields
=
(
'code'
,
'name'
,
'symbol'
,
'one_USD_in_this_currency'
)
fields
=
'__all__'
class
CurrencyViewSet
(
viewsets
.
ModelViewSet
):
permission_classes
=
(
permissions
.
DjangoModelPermissions
,)
permission_classes
=
(
permissions
.
IsAdminUser
,)
queryset
=
Currency
.
objects
.
all
()
# pylint: disable=E1101
serializer_class
=
CurrencySerializer
rex/models/module/scholarship.py
View file @
c852a598
from
django.db
import
models
from
rex.models.module
import
BasicModule
from
rex.models.tools
import
Currency
from
.currency
import
Currency
from
rest_framework
import
serializers
from
django.core.validators
import
MinValueValidator
...
...
rex/models/otherCore/__init__.py
0 → 100644
View file @
c852a598
from
.semester
import
Semester
,
SemesterViewSet
# noqa: F401
from
.department
import
Department
,
DepartmentViewSet
# noqa: F401
from
.specialty
import
Specialty
,
SpecialtyViewSet
# noqa: F401
from
.offer
import
Offer
,
OfferViewSet
# noqa: F401
rex/models/otherCore/department.py
0 → 100644
View file @
c852a598
from
django.db
import
models
from
rest_framework
import
serializers
,
viewsets
,
permissions
class
Department
(
models
.
Model
):
code
=
models
.
CharField
(
primary_key
=
True
,
max_length
=
6
)
name
=
models
.
CharField
(
max_length
=
100
)
active
=
models
.
BooleanField
()
class
DepartmentSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Department
fields
=
'__all__'
class
DepartmentViewSet
(
viewsets
.
ModelViewSet
):
permission_classes
=
(
permissions
.
IsAdminUser
,)
queryset
=
Department
.
objects
.
all
()
# pylint: disable=E1101
serializer_class
=
DepartmentSerializer
rex/models/otherCore/offer.py
0 → 100644
View file @
c852a598
from
django.db
import
models
from
rest_framework
import
serializers
,
viewsets
,
permissions
from
rex.models.university
import
University
from
rex.models.otherCore
import
Semester
,
Specialty
class
Offer
(
models
.
Model
):
semester
=
models
.
ForeignKey
(
Semester
,
on_delete
=
models
.
PROTECT
)
university
=
models
.
ForeignKey
(
University
,
on_delete
=
models
.
PROTECT
)
nb_seats_offered
=
models
.
IntegerField
()
specialty
=
models
.
ManyToManyField
(
Specialty
,
related_name
=
"has_seats_at_univ"
)
class
Meta
:
unique_together
=
(
'semester'
,
'university'
)
class
OfferSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Offer
fields
=
'__all__'
class
OfferViewSet
(
viewsets
.
ModelViewSet
):
permission_classes
=
(
permissions
.
IsAdminUser
,)
queryset
=
Offer
.
objects
.
all
()
# pylint: disable=E1101
serializer_class
=
OfferSerializer
rex/models/otherCore/semester.py
0 → 100644
View file @
c852a598
from
django.db
import
models
from
rest_framework
import
serializers
,
viewsets
,
permissions
class
Semester
(
models
.
Model
):
code
=
models
.
CharField
(
primary_key
=
True
,
max_length
=
6
)
class
SemesterSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Semester
fields
=
'__all__'
class
SemesterViewSet
(
viewsets
.
ModelViewSet
):
permission_classes
=
(
permissions
.
IsAdminUser
,)
queryset
=
Semester
.
objects
.
all
()
# pylint: disable=E1101
serializer_class
=
SemesterSerializer
rex/models/otherCore/specialty.py
0 → 100644
View file @
c852a598
from
django.db
import
models
from
rest_framework
import
serializers
,
viewsets
,
permissions
from
rex.models.otherCore
import
Department
class
Specialty
(
models
.
Model
):
code
=
models
.
CharField
(
max_length
=
6
)
department
=
models
.
ForeignKey
(
Department
,
on_delete
=
models
.
PROTECT
)
name
=
models
.
CharField
(
max_length
=
100
)
active
=
models
.
BooleanField
()
class
Meta
:
unique_together
=
(
'code'
,
'department'
)
# TODO add documentation : you should add departement.
class
SpecialtySerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
Specialty
fields
=
'__all__'
class
SpecialtyViewSet
(
viewsets
.
ModelViewSet
):
permission_classes
=
(
permissions
.
IsAdminUser
,)
queryset
=
Specialty
.
objects
.
all
()
# pylint: disable=E1101
serializer_class
=
SpecialtySerializer
rex/models/tools/__init__.py
View file @
c852a598
from
.DictModeViewSet
import
DictModeViewSet
# noqa: F401
from
.usefullLinksField
import
UsefullLinksField
# noqa: F401
from
.validateWithRestFramework
import
validate_with_rest_framework
# noqa: F401
from
.currency
import
Currency
,
CurrencyViewSet
,
CurrencySerializer
# noqa: F401
rex/models/university/universityInfo.py
View file @
c852a598
from
django.db
import
models
from
rex.models.module
import
BasicModule
,
BasicModuleSerializer
from
rex.models.university
import
University
from
rex.models.
tools
import
Currency
from
rex.models.
module
import
Currency
from
django.core.validators
import
MinValueValidator
from
rest_framework
import
viewsets
,
permissions
...
...
rex/models/university/universityScholarship.py
View file @
c852a598
...
...
@@ -8,8 +8,6 @@ class UniversityScholarship(Scholarship):
university
=
models
.
ForeignKey
(
University
,
on_delete
=
models
.
PROTECT
,
null
=
False
,
related_name
=
"univScholarship"
)
# API
class
UniversityScholarshipSerializer
(
BasicModuleSerializer
):
...
...
rex/urls.py
View file @
c852a598
...
...
@@ -4,6 +4,12 @@ from rest_framework import routers
from
rex.models.location
import
CountryViewSet
from
rex.models.location
import
CityViewSet
from
rex.models.module
import
CurrencyViewSet
from
rex.models.otherCore
import
DepartmentViewSet
from
rex.models.otherCore
import
OfferViewSet
from
rex.models.otherCore
import
SemesterViewSet
from
rex.models.otherCore
import
SpecialtyViewSet
from
rex.models.location
import
CountryCultureViewSet
from
rex.models.location
import
CountryHealthInsuranceViewSet
from
rex.models.location
import
CountryOtherInsuranceViewSet
...
...
@@ -38,8 +44,6 @@ from rex.models.university import CampusAccommodationViewSet
from
rex.models.university
import
CampusCultureAndStudentLifeViewSet
from
rex.models.university
import
CampusOtherStuffViewSet
from
rex.models.tools
import
CurrencyViewSet
from
rest_framework.documentation
import
include_docs_urls
...
...
@@ -95,6 +99,11 @@ router.register(r'campus_more/transport', CampusTransportViewSet)
router
.
register
(
r
'campus_more/other_tuff'
,
CampusOtherStuffViewSet
)
router
.
register
(
r
'currency'
,
CurrencyViewSet
)
router
.
register
(
r
'other/currency'
,
CurrencyViewSet
)
router
.
register
(
r
'other/semester'
,
SemesterViewSet
)
router
.
register
(
r
'other/department'
,
DepartmentViewSet
)
router
.
register
(
r
'other/specialty'
,
SpecialtyViewSet
)
router
.
register
(
r
'other/offer'
,
OfferViewSet
)
urlpatterns
+=
[
url
(
r
'^api/'
,
include
(
router
.
urls
))]
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment