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
Julien Jerphanion
Rex Dri
Commits
32e2b6bb
Commit
32e2b6bb
authored
Sep 11, 2018
by
Florent Chehab
Browse files
Backend updated with aucreation of userdata and univ modules
Also removed some stuff
parent
5350a0b5
Changes
22
Hide whitespace changes
Inline
Side-by-side
backend/apps.py
View file @
32e2b6bb
...
...
@@ -5,4 +5,6 @@ class BackendConfig(AppConfig):
name
=
'backend'
def
ready
(
self
):
import
backend.signals
# noqa: F401
import
backend.signals.__create_user_modules_post_create
# noqa: F401
import
backend.signals.__squash_revision_by_user
# noqa: F401
import
backend.signals.__create_univ_modules_post_save
# noqa: F401
backend/load_data/loading_scripts/loadCountries.py
View file @
32e2b6bb
...
...
@@ -49,4 +49,4 @@ class LoadCountries(LoadGeneric):
intermediate_region_un_code
=
r
[
"Intermediate Region Code"
],
)
country
.
save
()
self
.
add_info
(
country
,
self
.
admin
)
self
.
add_info
_and_save
(
country
,
self
.
admin
)
backend/load_data/loading_scripts/loadCurrencies.py
View file @
32e2b6bb
...
...
@@ -26,4 +26,4 @@ class LoadCurrencies(LoadGeneric):
one_EUR_in_this_currency
=
Decimal
(
r
[
2
])
)
currency
.
save
()
self
.
add_info
(
currency
,
self
.
admin
)
self
.
add_info
_and_save
(
currency
,
self
.
admin
)
backend/load_data/loading_scripts/loadGeneric.py
View file @
32e2b6bb
...
...
@@ -5,7 +5,7 @@ import reversion
class
LoadGeneric
(
object
):
@
classmethod
def
add_info
(
cls
,
obj
,
admin
):
def
add_info
_and_save
(
cls
,
obj
,
admin
):
with
reversion
.
create_revision
():
obj
.
moderated_by
=
admin
obj
.
updated_by
=
admin
...
...
backend/load_data/loading_scripts/loadTags.py
View file @
32e2b6bb
...
...
@@ -20,4 +20,4 @@ class LoadTags(LoadGeneric):
for
tag
in
tags
:
t
=
Tag
(
name
=
tag
[
'name'
],
config
=
tag
[
'config'
])
t
.
save
()
self
.
add_info
(
t
,
self
.
admin
)
self
.
add_info
_and_save
(
t
,
self
.
admin
)
backend/load_data/loading_scripts/loadUniversities.py
View file @
32e2b6bb
...
...
@@ -33,7 +33,7 @@ class LoadUniversities(LoadGeneric):
country
=
country
)
city
.
save
()
self
.
add_info
(
city
,
self
.
admin
)
self
.
add_info
_and_save
(
city
,
self
.
admin
)
univ
=
University
.
objects
.
update_or_create
(
utc_id
=
utc_id
,
...
...
@@ -44,7 +44,7 @@ class LoadUniversities(LoadGeneric):
"logo"
:
logo
}
)[
0
]
self
.
add_info
(
univ
,
self
.
admin
)
self
.
add_info
_and_save
(
univ
,
self
.
admin
)
main_campus
=
Campus
(
is_main_campus
=
True
,
...
...
@@ -55,4 +55,4 @@ class LoadUniversities(LoadGeneric):
lon
=
lon
)
main_campus
.
save
()
self
.
add_info
(
main_campus
,
self
.
admin
)
self
.
add_info
_and_save
(
main_campus
,
self
.
admin
)
backend/load_data/loading_scripts/loadUniversityEx.py
View file @
32e2b6bb
...
...
@@ -26,24 +26,18 @@ class LoadUniversityEx(LoadGeneric):
comment
=
"Attention les cours de master sont 100% en anglais"
)
univ_dri_1
.
save
()
univ_dri_1
.
universities
.
add
(
EPFL
)
univ_dri_1
.
save
()
self
.
add_info
(
univ_dri_1
,
self
.
admin
)
self
.
add_info_and_save
(
univ_dri_1
,
self
.
admin
)
univ_info
=
UniversityInfo
(
university
=
EPFL
,
cost_exchange
=
0
,
costs_currency
=
CHF
)
univ_info
.
save
()
self
.
add_info
(
univ_info
,
self
.
admin
)
univ_info
=
UniversityInfo
.
objects
.
get
(
university
=
EPFL
)
univ_info
.
cost_exchange
=
0
univ_info
.
costs_currency
=
CHF
self
.
add_info_and_save
(
univ_info
,
self
.
admin
)
univ_semesters_dates
=
UniversitySemestersDates
(
university
=
EPFL
,
autumn_begin
=
datetime
.
strptime
(
"17/09/2018"
,
'%d/%m/%Y'
),
autumn_end
=
datetime
.
strptime
(
"29/01/2019"
,
'%d/%m/%Y'
)
)
univ_semesters_dates
.
save
()
self
.
add_info
(
univ_semesters_dates
,
self
.
admin
)
usd
=
UniversitySemestersDates
.
objects
.
get
(
university
=
EPFL
)
usd
.
autumn_begin
=
datetime
.
strptime
(
"17/09/2018"
,
'%d/%m/%Y'
)
usd
.
autumn_end
=
datetime
.
strptime
(
"29/01/2019"
,
'%d/%m/%Y'
)
self
.
add_info_and_save
(
usd
,
self
.
admin
)
univ_scholarship_1
=
UniversityScholarship
(
type
=
"Swiss European..."
,
...
...
@@ -55,8 +49,7 @@ class LoadUniversityEx(LoadGeneric):
)
univ_scholarship_1
.
save
()
univ_scholarship_1
.
universities
.
add
(
EPFL
)
univ_scholarship_1
.
save
()
self
.
add_info
(
univ_scholarship_1
,
self
.
admin
)
self
.
add_info_and_save
(
univ_scholarship_1
,
self
.
admin
)
univ_tag_1
=
UniversityTaggedItem
(
university
=
EPFL
,
...
...
@@ -65,5 +58,4 @@ class LoadUniversityEx(LoadGeneric):
comment
=
"Mon commentaire."
,
importance_level
=
'++'
)
univ_tag_1
.
save
()
self
.
add_info
(
univ_tag_1
,
self
.
admin
)
self
.
add_info_and_save
(
univ_tag_1
,
self
.
admin
)
backend/migrations/0007_auto_20180911_1114.py
0 → 100644
View file @
32e2b6bb
# Generated by Django 2.0.3 on 2018-09-11 09:14
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'backend'
,
'0006_auto_20180910_2144'
),
]
operations
=
[
migrations
.
RemoveField
(
model_name
=
'userdata'
,
name
=
'id'
,
),
migrations
.
AlterField
(
model_name
=
'userdata'
,
name
=
'owner'
,
field
=
models
.
OneToOneField
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
primary_key
=
True
,
serialize
=
False
,
to
=
settings
.
AUTH_USER_MODEL
),
),
]
backend/migrations/0008_auto_20180911_1147.py
0 → 100644
View file @
32e2b6bb
# Generated by Django 2.0.3 on 2018-09-11 09:47
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'backend'
,
'0007_auto_20180911_1114'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'universityinfo'
,
name
=
'costs_currency'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
PROTECT
,
to
=
'backend.Currency'
),
),
]
backend/models/abstract/my_model/myModelVersionned.py
View file @
32e2b6bb
from
backend.models.abstract.my_model
import
MyModel
,
MyModelSerializer
,
MyModelViewSet
from
backend.signals
import
new_revision_saved
from
backend.signals
.__squash_revision_by_user
import
new_revision_saved
from
rest_framework
import
serializers
,
mixins
,
viewsets
import
reversion
from
reversion.models
import
Version
...
...
backend/models/university/universityInfo.py
View file @
32e2b6bb
...
...
@@ -27,7 +27,7 @@ class UniversityInfo(BasicModule):
)
costs_currency
=
models
.
ForeignKey
(
Currency
,
on_delete
=
models
.
PROTECT
,
default
=
'EUR'
)
Currency
,
on_delete
=
models
.
PROTECT
,
null
=
True
)
@
classmethod
def
get_serializer
(
cls
):
...
...
backend/models/university/universitySemestersDates.py
View file @
32e2b6bb
...
...
@@ -29,7 +29,8 @@ class UniversitySemestersDates(BasicModule):
class
UniversitySemestersDatesSerializer
(
BasicModuleSerializer
):
def
my_validate
(
self
,
attrs
):
attrs
=
super
(
UniversitySemestersDatesSerializer
,
self
).
my_validate
(
attrs
)
attrs
=
super
(
UniversitySemestersDatesSerializer
,
self
).
my_validate
(
attrs
)
s_b
,
s_e
=
attrs
[
'spring_begin'
],
attrs
[
'spring_end'
]
a_b
,
a_e
=
attrs
[
'autumn_begin'
],
attrs
[
'autumn_end'
]
...
...
@@ -45,9 +46,6 @@ class UniversitySemestersDatesSerializer(BasicModuleSerializer):
test
(
s_b
,
s_e
,
'spring'
)
test
(
a_b
,
a_e
,
'autumn'
)
if
s_b
is
None
and
a_b
is
None
:
semester_error
(
'autaumn and spring'
)
return
attrs
class
Meta
:
...
...
backend/models/user/userData.py
View file @
32e2b6bb
...
...
@@ -10,7 +10,7 @@ from backend.utils import get_viewset_permissions, get_model_config
class
UserData
(
MyModel
):
model_config
=
get_model_config
(
"UserData"
)
owner
=
models
.
OneToOneField
(
User
,
on_delete
=
models
.
CASCADE
)
owner
=
models
.
OneToOneField
(
User
,
on_delete
=
models
.
CASCADE
,
primary_key
=
True
)
contact_info
=
JSONField
(
default
=
dict
)
contact_info_is_public
=
models
.
BooleanField
(
default
=
False
)
config
=
JSONField
(
default
=
dict
)
...
...
backend/signals/__create_univ_modules_post_save.py
0 → 100644
View file @
32e2b6bb
from
django.db.models.signals
import
post_save
from
backend.models.university
import
University
from
backend.models.university
import
UniversityInfo
from
backend.models.university
import
UniversitySemestersDates
def
create_univ_modules
(
sender
,
instance
,
created
,
**
kwargs
):
if
created
:
UniversityInfo
.
objects
.
create
(
university
=
instance
)
UniversitySemestersDates
.
objects
.
create
(
university
=
instance
)
post_save
.
connect
(
create_univ_modules
,
sender
=
University
)
backend/signals/__create_user_modules_post_create.py
0 → 100644
View file @
32e2b6bb
from
django.db.models.signals
import
post_save
from
django.contrib.auth.models
import
User
from
backend.models.user
import
UserData
def
create_user_modules
(
sender
,
instance
,
created
,
**
kwargs
):
if
created
:
UserData
.
objects
.
create
(
owner
=
instance
)
post_save
.
connect
(
create_user_modules
,
sender
=
User
)
backend/signals/__init__.py
0 → 100644
View file @
32e2b6bb
backend/signals.py
→
backend/signals
/__squash_revision_by_user
.py
View file @
32e2b6bb
...
...
@@ -4,7 +4,7 @@ import django.dispatch
new_revision_saved
=
django
.
dispatch
.
Signal
(
providing_args
=
[
"obj"
])
def
squash
R
evision
ByU
ser
(
sender
,
obj
,
**
kwargs
):
def
squash
_r
evision
_by_u
ser
(
sender
,
obj
,
**
kwargs
):
"""
It should also work with moderation as obj will be a versionned object
"""
...
...
@@ -25,6 +25,6 @@ def squashRevisionByUser(sender, obj, **kwargs):
new_revision_saved
.
connect
(
squash
R
evision
ByU
ser
,
squash
_r
evision
_by_u
ser
,
dispatch_uid
=
"receiver_concat_revisions"
)
backend/tests/test_semester_dates_validate.py
View file @
32e2b6bb
...
...
@@ -21,8 +21,8 @@ class SemesterDatesTestCase(TestCase):
self
.
ser
.
my_validate
(
attrs
)
self
.
ser
=
UniversitySemestersDatesSerializer
()
_test_attrs_error
(
build
([
None
]
*
4
))
_test_attrs_error
(
build
([
None
,
3
,
None
,
None
]))
_test_attrs_error
(
build
([
2
,
3
,
3
,
2
]))
self
.
ser
.
my_validate
(
build
([
None
]
*
4
))
self
.
ser
.
my_validate
(
build
([
2
,
3
,
None
,
None
]))
self
.
ser
.
my_validate
(
build
([
2
,
3
,
2
,
3
]))
backend/tests/test_signals_post_create.py
0 → 100644
View file @
32e2b6bb
from
django.test
import
TestCase
from
django.contrib.auth.models
import
User
from
backend.models.user
import
UserData
from
backend.models.university
import
University
from
backend.models.university
import
UniversityInfo
from
backend.models.university
import
UniversitySemestersDates
class
AutomaticCreationPostCreateTestCase
(
TestCase
):
@
classmethod
def
setUpTestData
(
cls
):
cls
.
user
=
User
.
objects
.
create_user
(
username
=
"toto"
)
cls
.
univ
=
University
.
objects
.
create
(
name
=
"Univ de test"
,
utc_id
=
1000
)
def
test_user_data_automatically_created
(
self
):
self
.
assertTrue
(
UserData
.
objects
.
filter
(
owner
=
self
.
user
).
exists
()
)
def
test_univ_data_automatically_created
(
self
):
self
.
assertTrue
(
UniversityInfo
.
objects
.
filter
(
university
=
self
.
univ
).
exists
()
)
self
.
assertTrue
(
UniversitySemestersDates
.
objects
.
filter
(
university
=
self
.
univ
).
exists
()
)
backend/tests/test_squash_versions.py
View file @
32e2b6bb
from
backend.models.abstract.my_model
import
ForTestingVersioning
from
reversion.models
import
Version
from
backend.signals
import
squash
R
evision
ByU
ser
from
backend.signals
.__squash_revision_by_user
import
squash
_r
evision
_by_u
ser
import
reversion
from
.withUserTestCase
import
WithUserTestCase
import
json
...
...
@@ -33,7 +33,7 @@ class SquashVersionsTestCase(WithUserTestCase):
self
.
obj
.
save
()
reversion
.
set_user
(
self
.
authenticated_user_2
)
squash
R
evision
ByU
ser
(
None
,
self
.
obj
)
squash
_r
evision
_by_u
ser
(
None
,
self
.
obj
)
versions
=
self
.
get_versions
(
self
.
obj
)
self
.
assertEqual
(
len
(
versions
),
2
)
...
...
@@ -53,7 +53,7 @@ class SquashVersionsTestCase(WithUserTestCase):
self
.
obj
.
save
()
reversion
.
set_user
(
self
.
authenticated_user
)
squash
R
evision
ByU
ser
(
None
,
self
.
obj
)
squash
_r
evision
_by_u
ser
(
None
,
self
.
obj
)
versions
=
self
.
get_versions
(
self
.
obj
)
self
.
assertEqual
(
len
(
versions
),
1
)
...
...
Prev
1
2
Next
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