Skip to content
GitLab
Menu
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
7db3e41d
Commit
7db3e41d
authored
Aug 26, 2018
by
Florent Chehab
Browse files
Merge branch 'feature_moderation' into 'frontend'
Feature moderation See merge request chehabfl/outgoing_rex!13
parents
f1c99e79
1a6bb9ab
Changes
80
Expand all
Show whitespace changes
Inline
Side-by-side
.coveragerc
View file @
7db3e41d
[run]
omit = *migrations*
source = .
omit =
*migrations*
tests/*
source = .
.flake8
View file @
7db3e41d
[flake8]
# E501 line too long
ignore = E501
exclude = tests/*, env/*
\ No newline at end of file
exclude =
env/*
node_modules/*
.gitignore
View file @
7db3e41d
...
...
@@ -9,3 +9,4 @@ node_modules
.coverage
htmlcov
.vscode
.pytest_cache
.gitlab-ci.yml
View file @
7db3e41d
...
...
@@ -14,9 +14,7 @@ testing:
-
export DATABASE_URL=postgres://postgres:@postgres:5432/python-test-app
-
pip install -r requirements.txt --quiet
-
./manage.py check
-
coverage3 run manage.py test
-
coverage3 report
-
coverage3 html
-
pytest -n 4 general/ frontend/ backend/ --cov-report html
artifacts
:
paths
:
-
htmlcov/
...
...
.vscode/settings.json
View file @
7db3e41d
...
...
@@ -8,7 +8,9 @@
"**/.DS_Store"
:
true
,
"**/__pycache__"
:
true
,
"**/*.pyc"
:
true
,
"htmlcov"
:
true
"htmlcov"
:
false
,
"env"
:
true
,
".coverage"
:
true
},
"cSpell.language"
:
"en,fr-FR,fr"
,
"python.linting.flake8Enabled"
:
true
...
...
backend/admin.py
View file @
7db3e41d
...
...
@@ -47,6 +47,8 @@ from backend.models.user import PreviousDeparture
from
backend.models.user
import
PreviousDepartureFeedback
from
backend.models.user
import
UserData
from
backend.models.my_model
import
PendingModeration
CLASSIC_MODELS
=
[
Country
,
City
,
...
...
@@ -59,7 +61,8 @@ CLASSIC_MODELS = [
RecommendationList
,
PreviousDeparture
,
PreviousDepartureFeedback
,
UserData
UserData
,
PendingModeration
]
VERSIONNED_MODELS
=
[
...
...
backend/migrations/0004_pendingmoderation.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-24 13:51
from
django.conf
import
settings
import
django.contrib.postgres.fields.jsonb
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
migrations
.
swappable_dependency
(
settings
.
AUTH_USER_MODEL
),
(
'contenttypes'
,
'0002_remove_content_type_name'
),
(
'backend'
,
'0003_auto_20180824_1011'
),
]
operations
=
[
migrations
.
CreateModel
(
name
=
'PendingModeration'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'object_id'
,
models
.
CharField
(
max_length
=
100
)),
(
'content_object'
,
django
.
contrib
.
postgres
.
fields
.
jsonb
.
JSONField
()),
(
'delete'
,
models
.
NullBooleanField
(
default
=
None
)),
(
'approve'
,
models
.
NullBooleanField
(
default
=
None
)),
(
'author'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
settings
.
AUTH_USER_MODEL
)),
(
'content_type'
,
models
.
ForeignKey
(
on_delete
=
django
.
db
.
models
.
deletion
.
CASCADE
,
to
=
'contenttypes.ContentType'
)),
],
),
]
backend/migrations/0005_auto_20180824_1553.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-24 13:53
import
django.contrib.postgres.fields.jsonb
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'backend'
,
'0004_pendingmoderation'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'pendingmoderation'
,
name
=
'content_object'
,
field
=
django
.
contrib
.
postgres
.
fields
.
jsonb
.
JSONField
(
default
=
{}),
),
]
backend/migrations/0006_auto_20180824_1558.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-24 13:58
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'backend'
,
'0005_auto_20180824_1553'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'pendingmoderation'
,
old_name
=
'content_object'
,
new_name
=
'new_object'
,
),
]
backend/migrations/0007_auto_20180824_1741.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-24 15:41
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'backend'
,
'0006_auto_20180824_1558'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'pendingmoderation'
,
old_name
=
'new_object'
,
new_name
=
'object_to_moderate'
,
),
]
backend/migrations/0008_auto_20180824_2128.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-24 19:28
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
migrations
.
swappable_dependency
(
settings
.
AUTH_USER_MODEL
),
(
'backend'
,
'0007_auto_20180824_1741'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'pendingmoderation'
,
old_name
=
'object_to_moderate'
,
new_name
=
'new_object'
,
),
migrations
.
RemoveField
(
model_name
=
'pendingmoderation'
,
name
=
'approve'
,
),
migrations
.
RemoveField
(
model_name
=
'pendingmoderation'
,
name
=
'delete'
,
),
migrations
.
RemoveField
(
model_name
=
'university'
,
name
=
'updated_at'
,
),
migrations
.
AddField
(
model_name
=
'university'
,
name
=
'moderated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
related_name
=
'moderated'
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AddField
(
model_name
=
'university'
,
name
=
'moderated_on'
,
field
=
models
.
DateTimeField
(
null
=
True
),
),
migrations
.
AddField
(
model_name
=
'university'
,
name
=
'updated_on'
,
field
=
models
.
DateTimeField
(
null
=
True
),
),
migrations
.
AlterField
(
model_name
=
'campus'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'campusaccommodation'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'campuscultureandstudentlife'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'campusotherstuff'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'campustransport'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'cityotherstuff'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'cityphoto'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'citytourism'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'citytransport'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countryculture'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countrydri'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countryhealthinsurance'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countryotherinsurance'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countryotherstuff'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countryphoto'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countryscholarship'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countrytourism'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countrytransport'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'countryvisaadministrative'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'university'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
related_name
=
'updated'
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universitycourses'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universityculture'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universitydri'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universityinfo'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universityinsurance'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universityotherstuff'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universityphoto'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universityscholarship'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universitysemestersdates'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'universityspecialoffer'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
to
=
settings
.
AUTH_USER_MODEL
),
),
]
backend/migrations/0009_auto_20180824_2218.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-24 20:18
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'contenttypes'
,
'0002_remove_content_type_name'
),
(
'backend'
,
'0008_auto_20180824_2128'
),
]
operations
=
[
migrations
.
AlterUniqueTogether
(
name
=
'pendingmoderation'
,
unique_together
=
{(
'content_type'
,
'object_id'
)},
),
]
backend/migrations/0010_auto_20180824_2251.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-24 20:51
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'backend'
,
'0009_auto_20180824_2218'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'pendingmoderation'
,
old_name
=
'author'
,
new_name
=
'updated_by'
,
),
migrations
.
AddField
(
model_name
=
'pendingmoderation'
,
name
=
'updated_on'
,
field
=
models
.
DateTimeField
(
null
=
True
),
),
]
backend/migrations/0011_auto_20180825_1849.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-25 16:49
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
migrations
.
swappable_dependency
(
settings
.
AUTH_USER_MODEL
),
(
'backend'
,
'0010_auto_20180824_2251'
),
]
operations
=
[
migrations
.
CreateModel
(
name
=
'TestingModeration'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'moderated_on'
,
models
.
DateTimeField
(
null
=
True
)),
(
'updated_on'
,
models
.
DateTimeField
(
null
=
True
)),
(
'do_not_touch_this_stuff'
,
models
.
CharField
(
max_length
=
100
)),
(
'moderated_by'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
related_name
=
'+'
,
to
=
settings
.
AUTH_USER_MODEL
)),
(
'updated_by'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
related_name
=
'+'
,
to
=
settings
.
AUTH_USER_MODEL
)),
],
options
=
{
'abstract'
:
False
,
},
),
migrations
.
AlterField
(
model_name
=
'university'
,
name
=
'moderated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
related_name
=
'+'
,
to
=
settings
.
AUTH_USER_MODEL
),
),
migrations
.
AlterField
(
model_name
=
'university'
,
name
=
'updated_by'
,
field
=
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
related_name
=
'+'
,
to
=
settings
.
AUTH_USER_MODEL
),
),
]
backend/migrations/0012_auto_20180825_1938.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-25 17:38
from
django.conf
import
settings
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
migrations
.
swappable_dependency
(
settings
.
AUTH_USER_MODEL
),
(
'backend'
,
'0011_auto_20180825_1849'
),
]
operations
=
[
migrations
.
RenameModel
(
old_name
=
'TestingModeration'
,
new_name
=
'ForTestingModeration'
,
),
]
backend/migrations/0013_auto_20180825_1944.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-25 17:44
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'backend'
,
'0012_auto_20180825_1938'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'fortestingmoderation'
,
old_name
=
'do_not_touch_this_stuff'
,
new_name
=
'aaa'
,
),
]
backend/migrations/0014_fortestingversionning.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-26 08:48
from
django.conf
import
settings
from
django.db
import
migrations
,
models
import
django.db.models.deletion
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
migrations
.
swappable_dependency
(
settings
.
AUTH_USER_MODEL
),
(
'backend'
,
'0013_auto_20180825_1944'
),
]
operations
=
[
migrations
.
CreateModel
(
name
=
'ForTestingVersionning'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'moderated_on'
,
models
.
DateTimeField
(
null
=
True
)),
(
'updated_on'
,
models
.
DateTimeField
(
null
=
True
)),
(
'aaa'
,
models
.
CharField
(
max_length
=
100
)),
(
'moderated_by'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
related_name
=
'+'
,
to
=
settings
.
AUTH_USER_MODEL
)),
(
'updated_by'
,
models
.
ForeignKey
(
null
=
True
,
on_delete
=
django
.
db
.
models
.
deletion
.
SET_NULL
,
related_name
=
'+'
,
to
=
settings
.
AUTH_USER_MODEL
)),
],
options
=
{
'abstract'
:
False
,
},
),
]
backend/migrations/0015_auto_20180826_1127.py
0 → 100644
View file @
7db3e41d
# Generated by Django 2.0.3 on 2018-08-26 09:27
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'backend'
,
'0014_fortestingversionning'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'fortestingversionning'
,
old_name
=
'aaa'
,
new_name
=
'bbb'
,
),
]
backend/migrations/0016_auto_20180826_1556.py
0 → 100644
View file @
7db3e41d
This diff is collapsed.
Click to expand it.
backend/models/location/city.py
View file @
7db3e41d
from
django.db
import
models
from
rest_framework
import
serializers
,
permissions
from
backend.models.tools
import
DictModeViewSet
from
rest_framework
import
serializers
from
backend.models.location
import
Country
from
backend.models.my_model
import
MyModel
,
MyModelSerializer
,
MyModelVersionnedViewSet
# Data model based on : https://unstats.un.org/unsd/methodology/m49/overview/
class
City
(
models
.
Model
):
class
City
(
MyModel
):
name
=
models
.
CharField
(
max_length
=
200
)
local_name
=
models
.
CharField
(
max_length
=
200
,
null
=
True
,
blank
=
True
)
# We add an area to distinguish similarly named cities
...
...
@@ -21,7 +18,7 @@ API RELATED STUFF BELLOW
"""
class
CitySerializer
(
serializers
.
ModelSerializer
):
class
CitySerializer
(
My
ModelSerializer
):
country_url
=
serializers
.
SerializerMethodField
()
def
get_country_url
(
self
,
obj
):
...
...
@@ -36,7 +33,6 @@ class CitySerializer(serializers.ModelSerializer):
fields
=
'__all__'
class
CityViewSet
(
DictModeViewSet
):
permission_classes
=
(
permissions
.
DjangoModelPermissions
,)
class
CityViewSet
(
MyModelVersionnedViewSet
):
queryset
=
City
.
objects
.
all
()
# pylint: disable=E1101
serializer_class
=
CitySerializer
Prev
1
2
3
4
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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