Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
concrexit
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
70
Issues
70
List
Boards
Labels
Service Desk
Milestones
Merge Requests
10
Merge Requests
10
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
thalia
concrexit
Commits
7e20a36c
Unverified
Commit
7e20a36c
authored
Oct 22, 2016
by
Joost Rijneveld
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Apply isort to entire codebase
parent
8aacf7db
Changes
71
Hide whitespace changes
Inline
Side-by-side
Showing
71 changed files
with
204 additions
and
205 deletions
+204
-205
.isort.cfg
.isort.cfg
+6
-0
website/activemembers/admin.py
website/activemembers/admin.py
+1
-0
website/activemembers/models.py
website/activemembers/models.py
+3
-2
website/activemembers/tests.py
website/activemembers/tests.py
+1
-1
website/activemembers/views.py
website/activemembers/views.py
+2
-2
website/documents/admin.py
website/documents/admin.py
+2
-3
website/documents/management/commands/migratedocuments.py
website/documents/management/commands/migratedocuments.py
+6
-10
website/documents/models.py
website/documents/models.py
+2
-2
website/documents/templatetags/filename.py
website/documents/templatetags/filename.py
+1
-2
website/documents/views.py
website/documents/views.py
+3
-2
website/education/admin.py
website/education/admin.py
+1
-0
website/education/forms.py
website/education/forms.py
+3
-8
website/education/management/commands/migrateeducation.py
website/education/management/commands/migrateeducation.py
+3
-2
website/education/models.py
website/education/models.py
+2
-1
website/education/views.py
website/education/views.py
+2
-2
website/events/admin.py
website/events/admin.py
+3
-3
website/events/api/serializers.py
website/events/api/serializers.py
+1
-1
website/events/api/viewsets.py
website/events/api/viewsets.py
+3
-2
website/events/feeds.py
website/events/feeds.py
+2
-1
website/events/forms.py
website/events/forms.py
+2
-1
website/events/management/commands/migrateevents.py
website/events/management/commands/migrateevents.py
+5
-5
website/events/models.py
website/events/models.py
+4
-2
website/events/tests.py
website/events/tests.py
+1
-2
website/events/urls.py
website/events/urls.py
+1
-0
website/events/views.py
website/events/views.py
+7
-6
website/mailinglists/admin.py
website/mailinglists/admin.py
+1
-1
website/mailinglists/management/commands/migratelists.py
website/mailinglists/management/commands/migratelists.py
+3
-4
website/mailinglists/models.py
website/mailinglists/models.py
+2
-2
website/mailinglists/views.py
website/mailinglists/views.py
+6
-4
website/members/admin.py
website/members/admin.py
+2
-2
website/members/api/viewsets.py
website/members/api/viewsets.py
+3
-3
website/members/forms.py
website/members/forms.py
+2
-1
website/members/management/commands/migratemembers.py
website/members/management/commands/migratemembers.py
+10
-10
website/members/models.py
website/members/models.py
+7
-7
website/members/tests.py
website/members/tests.py
+3
-3
website/members/urls.py
website/members/urls.py
+0
-1
website/members/views.py
website/members/views.py
+4
-4
website/merchandise/admin.py
website/merchandise/admin.py
+1
-0
website/merchandise/management/commands/migratemerchandise.py
...ite/merchandise/management/commands/migratemerchandise.py
+5
-5
website/merchandise/models.py
website/merchandise/models.py
+2
-1
website/newsletters/admin.py
website/newsletters/admin.py
+1
-6
website/newsletters/models.py
website/newsletters/models.py
+2
-1
website/newsletters/tests.py
website/newsletters/tests.py
+1
-0
website/newsletters/urls.py
website/newsletters/urls.py
+0
-1
website/newsletters/views.py
website/newsletters/views.py
+2
-1
website/partners/admin.py
website/partners/admin.py
+2
-8
website/partners/api/viewsets.py
website/partners/api/viewsets.py
+4
-3
website/partners/models.py
website/partners/models.py
+2
-1
website/partners/views.py
website/partners/views.py
+2
-1
website/photos/admin.py
website/photos/admin.py
+4
-4
website/photos/models.py
website/photos/models.py
+6
-7
website/photos/urls.py
website/photos/urls.py
+0
-1
website/photos/views.py
website/photos/views.py
+7
-6
website/pizzas/admin.py
website/pizzas/admin.py
+3
-2
website/pizzas/models.py
website/pizzas/models.py
+2
-2
website/pizzas/views.py
website/pizzas/views.py
+6
-8
website/thabloid/models.py
website/thabloid/models.py
+6
-6
website/thabloid/views.py
website/thabloid/views.py
+1
-1
website/thaliawebsite/admin.py
website/thaliawebsite/admin.py
+0
-1
website/thaliawebsite/settings/settings.py
website/thaliawebsite/settings/settings.py
+1
-0
website/thaliawebsite/templatetags/bleach_tags.py
website/thaliawebsite/templatetags/bleach_tags.py
+1
-1
website/thaliawebsite/urls.py
website/thaliawebsite/urls.py
+6
-7
website/thaliawebsite/views.py
website/thaliawebsite/views.py
+4
-4
website/utils/management/commands/createfixtures.py
website/utils/management/commands/createfixtures.py
+4
-7
website/utils/management/commands/legacylogin.py
website/utils/management/commands/legacylogin.py
+3
-3
website/utils/snippets.py
website/utils/snippets.py
+2
-2
website/utils/templatetags/thumbnail.py
website/utils/templatetags/thumbnail.py
+3
-3
website/utils/tests.py
website/utils/tests.py
+4
-3
website/utils/translation.py
website/utils/translation.py
+2
-2
website/utils/validators.py
website/utils/validators.py
+2
-2
website/utils/views.py
website/utils/views.py
+3
-3
No files found.
.isort.cfg
0 → 100644
View file @
7e20a36c
[settings]
skip=migrations
multi_line_output=0
balanced_wrapping=True
known_third_party=django,rest_framework,sendfile,bs4,django_ical,bleach,factory,faker,requests
website/activemembers/admin.py
View file @
7e20a36c
from
django.contrib
import
admin
from
utils.translation
import
TranslatedModelAdmin
from
.
import
models
...
...
website/activemembers/models.py
View file @
7e20a36c
...
...
@@ -2,14 +2,15 @@ import datetime
import
logging
from
django.contrib.auth.models
import
Permission
from
django.core.exceptions
import
ValidationError
,
NON_FIELD_ERRORS
from
django.core.exceptions
import
NON_FIELD_ERRORS
,
ValidationError
from
django.core.validators
import
MinValueValidator
from
django.db
import
models
from
django.urls
import
reverse
from
django.utils
import
timezone
from
django.utils.translation
import
ugettext_lazy
as
_
from
members.models
import
Member
from
utils.translation
import
M
ultilingualField
,
ModelTranslateMeta
from
utils.translation
import
M
odelTranslateMeta
,
MultilingualField
logger
=
logging
.
getLogger
(
__name__
)
...
...
website/activemembers/tests.py
View file @
7e20a36c
from
django.core.exceptions
import
ValidationError
from
django.contrib.auth
import
get_user_model
from
django.core.exceptions
import
ValidationError
from
django.db.utils
import
IntegrityError
from
django.test
import
TestCase
from
django.utils
import
timezone
...
...
website/activemembers/views.py
View file @
7e20a36c
from
django.shortcuts
import
render
,
get_object_or_404
from
django.shortcuts
import
get_object_or_404
,
render
from
.models
import
Committee
,
CommitteeMembership
,
Board
from
.models
import
Board
,
Committee
,
CommitteeMembership
def
committee_index
(
request
):
...
...
website/documents/admin.py
View file @
7e20a36c
from
django.contrib
import
admin
from
documents.models
import
AssociationDocumentsYear
from
documents.models
import
MiscellaneousDocument
from
documents.models
import
GeneralMeeting
,
GeneralMeetingDocument
from
documents.models
import
(
AssociationDocumentsYear
,
GeneralMeeting
,
GeneralMeetingDocument
,
MiscellaneousDocument
)
class
GeneralMeetingDocInline
(
admin
.
StackedInline
):
...
...
website/documents/management/commands/migratedocuments.py
View file @
7e20a36c
import
os
import
requests
from
bs4
import
BeautifulSoup
from
django.core.files.base
import
ContentFile
from
django.utils
import
timezone
from
django.utils.timezone
import
datetime
from
documents.models
import
(
AssociationDocumentsYear
,
GeneralMeeting
,
GeneralMeetingDocument
,
MiscellaneousDocument
)
from
utils.management.commands
import
legacylogin
from
documents.models
import
(
GeneralMeeting
,
GeneralMeetingDocument
,
AssociationDocumentsYear
,
MiscellaneousDocument
)
from
bs4
import
BeautifulSoup
import
requests
import
os
def
filefield_from_url
(
filefield
,
url
):
...
...
website/documents/models.py
View file @
7e20a36c
from
django.db
import
models
from
django.utils
import
timezone
from
django.core.validators
import
MinValueValidator
from
django.db
import
models
from
django.urls
import
reverse
from
django.utils
import
timezone
from
utils.validators
import
validate_file_extension
...
...
website/documents/templatetags/filename.py
View file @
7e20a36c
from
django
import
template
import
os
from
django
import
template
register
=
template
.
Library
()
...
...
website/documents/views.py
View file @
7e20a36c
...
...
@@ -5,9 +5,10 @@ from django.core.exceptions import PermissionDenied
from
django.shortcuts
import
get_object_or_404
,
render
from
django.utils
import
timezone
from
django.utils.text
import
slugify
from
documents.models
import
AssociationDocumentsYear
,
MiscellaneousDocument
from
documents.models
import
GeneralMeeting
,
GeneralMeetingDocument
from
sendfile
import
sendfile
from
documents.models
import
(
AssociationDocumentsYear
,
GeneralMeeting
,
GeneralMeetingDocument
,
MiscellaneousDocument
)
from
utils.snippets
import
datetime_to_lectureyear
...
...
website/education/admin.py
View file @
7e20a36c
...
...
@@ -3,6 +3,7 @@ This module registers admin pages for the models
"""
from
django.contrib
import
admin
from
django.utils.translation
import
ugettext_lazy
as
_
from
utils.translation
import
TranslatedModelAdmin
from
.
import
models
...
...
website/education/forms.py
View file @
7e20a36c
from
django.conf
import
settings
from
django.forms
import
(
ModelForm
,
DateField
,
SelectDateWidget
,
ModelChoiceField
,
ChoiceField
)
from
django.forms
import
(
ChoiceField
,
DateField
,
ModelChoiceField
,
ModelForm
,
SelectDateWidget
)
from
.models
import
Exam
,
Summary
,
Course
from
.models
import
Course
,
Exam
,
Summary
class
AddExamForm
(
ModelForm
):
...
...
website/education/management/commands/migrateeducation.py
View file @
7e20a36c
...
...
@@ -4,11 +4,12 @@ import os
import
requests
from
django.conf
import
settings
from
django.contrib.auth.models
import
User
from
django.core.exceptions
import
PermissionDenied
,
ImproperlyConfigur
ed
from
django.core.exceptions
import
ImproperlyConfigured
,
PermissionDeni
ed
from
django.core.files.base
import
ContentFile
from
django.utils.dateparse
import
parse_date
from
django.utils.translation
import
activate
from
education.models
import
Summary
,
Exam
,
Course
,
Category
from
education.models
import
Category
,
Course
,
Exam
,
Summary
from
utils.management.commands
import
legacylogin
...
...
website/education/models.py
View file @
7e20a36c
...
...
@@ -3,8 +3,9 @@ from django.db import models
from
django.urls
import
reverse
from
django.utils
import
timezone
from
django.utils.translation
import
ugettext_lazy
as
_
from
utils.snippets
import
datetime_to_lectureyear
from
utils.translation
import
M
ultilingualField
,
ModelTranslateMeta
from
utils.translation
import
M
odelTranslateMeta
,
MultilingualField
class
Category
(
models
.
Model
,
metaclass
=
ModelTranslateMeta
):
...
...
website/education/views.py
View file @
7e20a36c
import
os
import
itertools
import
os
from
datetime
import
datetime
from
django.contrib.auth.decorators
import
login_required
from
django.shortcuts
import
render
,
get_object_or_404
from
django.shortcuts
import
get_object_or_404
,
render
from
django.utils.translation
import
ugettext_lazy
as
_
from
sendfile
import
sendfile
...
...
website/events/admin.py
View file @
7e20a36c
# -*- coding: utf-8 -*-
from
activemembers.models
import
Committee
from
django.contrib
import
admin
from
django.http
import
HttpResponseRedirect
from
django.urls
import
reverse
...
...
@@ -7,11 +6,12 @@ from django.utils import timezone
from
django.utils.html
import
format_html
from
django.utils.http
import
is_safe_url
from
django.utils.translation
import
ugettext_lazy
as
_
from
activemembers.models
import
Committee
from
members.models
import
Member
from
utils.translation
import
TranslatedModelAdmin
from
.
import
forms
from
.
import
models
from
.
import
forms
,
models
def
_do_next
(
request
,
response
):
...
...
website/events/api/serializers.py
View file @
7e20a36c
from
django.utils
import
timezone
from
django.urls
import
reverse
from
django.utils
import
timezone
from
rest_framework
import
serializers
from
events.models
import
Event
...
...
website/events/api/viewsets.py
View file @
7e20a36c
from
datetime
import
datetime
from
django.utils
import
timezone
from
rest_framework
import
viewsets
from
rest_framework.exceptions
import
ParseError
from
rest_framework.response
import
Response
from
django.utils
import
timezone
from
datetime
import
datetime
from
events.api.serializers
import
EventSerializer
from
events.models
import
Event
...
...
website/events/feeds.py
View file @
7e20a36c
from
datetime
import
datetime
,
timedelta
from
django.urls
import
reverse
from
django.utils.translation
import
ugettext
as
_
from
django.utils.translation
import
activate
from
django_ical.views
import
ICalFeed
from
events.models
import
Event
from
django.utils.translation
import
ugettext
as
_
class
EventFeed
(
ICalFeed
):
...
...
website/events/forms.py
View file @
7e20a36c
from
django
import
forms
from
django.utils.translation
import
get_language
,
ugettext_lazy
as
_
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
get_language
from
.models
import
RegistrationInformationField
...
...
website/events/management/commands/migrateevents.py
View file @
7e20a36c
import
re
import
json
import
requests
from
django.contrib.auth.models
import
User
import
re
from
datetime
import
datetime
from
django.core.management.base
import
BaseCommand
import
requests
from
django.conf
import
settings
from
django.contrib.auth.models
import
User
from
django.core.exceptions
import
ImproperlyConfigured
from
django.core.management.base
import
BaseCommand
from
django.utils
import
timezone
import
events.models
as
events_models
import
members.models
as
members_models
FIELD_DATA_TYPES
=
{
'0'
:
events_models
.
RegistrationInformationField
.
TEXT_FIELD
,
'1'
:
events_models
.
RegistrationInformationField
.
INTEGER_FIELD
,
...
...
website/events/models.py
View file @
7e20a36c
...
...
@@ -4,8 +4,10 @@ from django.db import models
from
django.db.models
import
Q
from
django.urls
import
reverse
from
django.utils
import
timezone
from
django.utils.translation
import
ugettext_lazy
as
_
,
string_concat
from
utils.translation
import
MultilingualField
,
ModelTranslateMeta
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
string_concat
from
utils.translation
import
ModelTranslateMeta
,
MultilingualField
class
Event
(
models
.
Model
,
metaclass
=
ModelTranslateMeta
):
...
...
website/events/tests.py
View file @
7e20a36c
...
...
@@ -4,9 +4,8 @@ from django.core.exceptions import ValidationError
from
django.test
import
TestCase
from
django.utils
import
timezone
from
members.models
import
Member
from
events.models
import
Event
,
Registration
from
members.models
import
Member
class
RegistrationTest
(
TestCase
):
...
...
website/events/urls.py
View file @
7e20a36c
...
...
@@ -5,6 +5,7 @@ Events URL Configuration
from
django.conf.urls
import
url
from
events.feeds
import
EventFeed
from
.
import
views
urlpatterns
=
[
...
...
website/events/views.py
View file @
7e20a36c
...
...
@@ -2,18 +2,19 @@ import csv
import
json
from
datetime
import
timedelta
from
django.http
import
HttpResponse
,
JsonResponse
from
django.views.decorators.http
import
require_http_methods
from
django.shortcuts
import
render
,
get_object_or_404
,
redirect
from
django.contrib
import
messages
from
django.contrib.admin.views.decorators
import
staff_member_required
from
django.contrib.auth.decorators
import
permission_required
,
login_required
from
django.contrib.auth.decorators
import
login_required
,
permission_required
from
django.http
import
HttpResponse
,
JsonResponse
from
django.shortcuts
import
get_object_or_404
,
redirect
,
render
from
django.utils
import
timezone
from
django.utils.text
import
slugify
from
django.utils.translation
import
ugettext_lazy
as
_
,
pgettext_lazy
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
pgettext_lazy
from
django.views.decorators.http
import
require_http_methods
from
.models
import
Event
,
Registration
,
RegistrationInformationField
from
.forms
import
FieldsForm
from
.models
import
Event
,
Registration
,
RegistrationInformationField
@
staff_member_required
...
...
website/mailinglists/admin.py
View file @
7e20a36c
from
django.contrib
import
admin
from
.models
import
MailingList
,
VerbatimAddress
,
ListAlia
s
from
.models
import
ListAlias
,
MailingList
,
VerbatimAddres
s
class
VerbatimAddressInline
(
admin
.
TabularInline
):
...
...
website/mailinglists/management/commands/migratelists.py
View file @
7e20a36c
import
requests
from
django.conf
import
settings
from
django.core.exceptions
import
ImproperlyConfigured
from
django.core.management.base
import
BaseCommand
from
activemembers.models
import
Committee
,
Board
from
members.models
import
Member
from
activemembers.models
import
Board
,
Committee
from
mailinglists.models
import
MailingList
,
VerbatimAddress
import
requests
from
members.models
import
Member
class
Command
(
BaseCommand
):
...
...
website/mailinglists/models.py
View file @
7e20a36c
from
django.db
import
models
from
django.core
import
validators
from
django.db
import
models
from
django.utils.translation
import
ugettext_lazy
as
_
from
members.models
import
Member
from
activemembers.models
import
Committee
from
members.models
import
Member
class
MailingList
(
models
.
Model
):
...
...
website/mailinglists/views.py
View file @
7e20a36c
import
hashlib
from
django.core.exceptions
import
PermissionDenied
from
django.shortcuts
import
render
,
get_object_or_404
from
django.http
import
Http404
from
django.shortcuts
import
get_object_or_404
,
render
from
.models
import
MailingList
from
members.models
import
Member
from
activemembers.models
import
CommitteeMembership
from
members.models
import
Member
from
.models
import
MailingList
import
hashlib
# Consider replacing this completely;
# - either by a cronjob Python script that queries the database directly
...
...
website/members/admin.py
View file @
7e20a36c
...
...
@@ -5,11 +5,11 @@ import datetime
from
django.contrib
import
admin
from
django.contrib.auth.admin
import
UserAdmin
as
BaseUserAdmin
from
django.contrib.auth.models
import
User
from
django.contrib.auth.forms
import
UserCreationForm
as
BaseUserCreationForm
from
django.contrib.auth.models
import
User
from
django.utils.translation
import
ugettext_lazy
as
_
from
.
import
models
,
form
s
from
.
import
forms
,
model
s
class
MembershipInline
(
admin
.
StackedInline
):
...
...
website/members/api/viewsets.py
View file @
7e20a36c
import
copy
from
datetime
import
datetime
from
django.utils
import
timezone
from
rest_framework
import
viewsets
from
rest_framework.decorators
import
list_route
from
datetime
import
datetime
import
copy
from
rest_framework.exceptions
import
ParseError
from
rest_framework.response
import
Response
...
...
website/members/forms.py
View file @
7e20a36c
...
...
@@ -4,7 +4,8 @@ from django import forms
from
django.contrib.auth.models
import
User
from
django.template
import
loader
from
django.utils
import
translation
from
django.utils.translation
import
ugettext_lazy
as
_
,
ugettext
as
t
from
django.utils.translation
import
ugettext
as
t
from
django.utils.translation
import
ugettext_lazy
as
_
from
.models
import
Member
...
...
website/members/management/commands/migratemembers.py
View file @
7e20a36c
from
django.core.files.base
import
ContentFile
import
json
import
os
import
requests
from
bs4
import
BeautifulSoup
from
django.conf
import
settings
from
django.contrib.auth.models
import
User
from
django.core.exceptions
import
ImproperlyConfigured
from
django.
utils.dateparse
import
parse_dat
e
from
django.
core.files.base
import
ContentFil
e
from
django.core.management.base
import
BaseCommand
from
django.
contrib.auth.models
import
User
from
django.
utils.dateparse
import
parse_date
from
django.utils.translation
import
activate
from
activemembers.models
import
(
Board
,
Committee
,
CommitteeMembership
,
Mentorship
)
from
activemembers.models
import
(
Board
,
Committee
,
CommitteeMembership
,
Mentorship
)
from
members.models
import
Member
from
bs4
import
BeautifulSoup
import
requests
import
json
import
os
def
imagefield_from_url
(
imagefield
,
url
):
file
=
ContentFile
(
requests
.
get
(
url
).
content
)
...
...
website/members/models.py
View file @
7e20a36c
from
django.utils
import
timezone
import
operator
from
datetime
import
date
,
timedelta
from
functools
import
reduce
from
django.conf
import
settings
from
django.core
import
validators
from
django.db
import
models
from
django.db.models
import
Q
from
django.core
import
validators
from
django.conf
import
settings
from
django.urls
import
reverse
from
django.utils
import
timezone
from
django.utils.translation
import
ugettext_lazy
as
_
from
datetime
import
timedelta
,
date
import
operator
from
functools
import
reduce
from
localflavor.generic.countries.sepa
import
IBAN_SEPA_COUNTRIES
from
localflavor.generic.models
import
IBANField
...
...
website/members/tests.py
View file @
7e20a36c
from
datetime
import
date
time
,
dat
e
,
timedelta
from
datetime
import
date
,
datetim
e
,
timedelta
from
django.contrib.auth.models
import
User
from
django.test
import
TestCase
from
django.utils
import
timezone
from
django.contrib.auth.models
import
User
from
members.models
import
(
Member
,
Membership
,
gen_stats_
year
,
gen_stats_member_type
)
gen_stats_
member_type
,
gen_stats_year
)
class
MemberBirthdayTest
(
TestCase
):
...
...
website/members/urls.py
View file @
7e20a36c
...
...
@@ -2,7 +2,6 @@ from django.conf.urls import url
from
.
import
views
urlpatterns
=
[
url
(
'^become-a-member-document/(?P<pk>[0-9]*)'
,
views
.
get_become_a_member_document
,
name
=
'become-a-member-document'
),
url
(
'^profile/(?P<pk>[0-9]*)$'
,
views
.
profile
,
name
=
'profile'
),
...
...
website/members/views.py
View file @
7e20a36c
import
json
import
os
from
datetime
import
date
,
datetime
from
sendfile
import
sendfile
import
json
from
django.core.paginator
import
Paginator
,
EmptyPage
,
PageNotAnInteger
from
django.contrib.auth.decorators
import
login_required
from
django.core.paginator
import
EmptyPage
,
PageNotAnInteger
,
Paginator
from
django.db.models
import
Q
from
django.shortcuts
import
get_object_or_404
,
render
from
django.contrib.auth.decorators
import
login_required
from
django.utils.text
import
slugify
from
sendfile
import
sendfile
from
.
import
models
from
.forms
import
MemberForm
...
...
website/merchandise/admin.py
View file @
7e20a36c
from
django.contrib
import
admin
from
utils.translation
import
TranslatedModelAdmin
from
.models
import
MerchandiseItem
...
...
website/merchandise/management/commands/migratemerchandise.py
View file @
7e20a36c
import
os
from
decimal
import
Decimal
import
requests
from
bs4
import
BeautifulSoup
from
django.core.files.base
import
ContentFile
from
django.core.management.base
import
BaseCommand
from
decimal
import
Decimal
from
merchandise.models
import
MerchandiseItem
from
bs4
import
BeautifulSoup
import
requests
import
os
def
filefield_from_url
(
filefield
,
url
):
file
=
ContentFile
(
requests
.
get
(
url
).
content
)
...
...
website/merchandise/models.py
View file @
7e20a36c
from
django.db
import
models
from
utils.translation
import
MultilingualField
,
ModelTranslateMeta
from
utils.translation
import
ModelTranslateMeta
,
MultilingualField
class
MerchandiseItem
(
models
.
Model
,
metaclass
=
ModelTranslateMeta
):
...
...
website/newsletters/admin.py
View file @
7e20a36c
from
django.contrib
import
admin
from
django.shortcuts
import
redirect
from
newsletters.models
import
Newsletter
,
NewsletterEvent
,
NewsletterItem
from
utils.translation
import
TranslatedModelAdmin
from
newsletters.models
import
(
Newsletter
,
NewsletterEvent
,
NewsletterItem
)
class
NewsletterItemInline
(
admin
.
StackedInline
):
model
=
NewsletterItem
...
...
website/newsletters/models.py
View file @
7e20a36c
...
...
@@ -3,7 +3,8 @@ from django.db import models
from
django.urls
import
reverse
from
django.utils.translation
import
ugettext_lazy
as
_
from
tinymce.models
import
HTMLField
from
utils.translation
import
MultilingualField
,
ModelTranslateMeta
from
utils.translation
import
ModelTranslateMeta
,
MultilingualField
class
Newsletter
(
models
.
Model
,
metaclass
=
ModelTranslateMeta
):
...
...
website/newsletters/tests.py