Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
AKPlanning
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Dominik Weitz
AKPlanning
Commits
a32cd663
Commit
a32cd663
authored
4 years ago
by
Benjamin Hättasch
Browse files
Options
Downloads
Plain Diff
Merge branch 'admin_config' into 'master'
Admin config See merge request
!16
parents
4cfb5f44
5c949861
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
AKModel/admin.py
+85
-28
85 additions, 28 deletions
AKModel/admin.py
with
85 additions
and
28 deletions
AKModel/admin.py
+
85
−
28
View file @
a32cd663
...
...
@@ -6,11 +6,17 @@ from django.utils import timezone
from
django.utils.translation
import
gettext_lazy
as
_
from
AKModel.availability
import
Availability
from
AKModel.models
import
Event
,
AKOwner
,
AKCategory
,
AKTrack
,
AKTag
,
AKRequirement
,
AK
,
Room
,
AKSlot
from
AKModel.models
import
Event
,
AKOwner
,
AKCategory
,
AKTrack
,
AKTag
,
AKRequirement
,
AK
,
AKSlot
,
Room
@admin.register
(
Event
)
class
EventAdmin
(
admin
.
ModelAdmin
):
model
=
Event
list_display
=
[
'
name
'
,
'
place
'
,
'
start
'
,
'
end
'
,
'
active
'
]
list_filter
=
[
'
active
'
]
list_editable
=
[
'
active
'
]
ordering
=
[
'
start
'
]
def
get_form
(
self
,
request
,
obj
=
None
,
change
=
False
,
**
kwargs
):
# Use timezone of event
if
obj
is
not
None
and
obj
.
timezone
:
...
...
@@ -20,40 +26,80 @@ class EventAdmin(admin.ModelAdmin):
timezone
.
activate
(
"
UTC
"
)
return
super
().
get_form
(
request
,
obj
,
change
,
**
kwargs
)
admin
.
site
.
register
(
AKOwner
)
admin
.
site
.
register
(
AKCategory
)
admin
.
site
.
register
(
AKTrack
)
admin
.
site
.
register
(
AKTag
)
admin
.
site
.
register
(
AKRequirement
)
@admin.register
(
AKOwner
)
class
AKOwnerAdmin
(
admin
.
ModelAdmin
):
model
=
AKOwner
list_display
=
[
'
name
'
,
'
institution
'
,
'
event
'
]
list_filter
=
[
'
institution
'
,
'
event
'
]
list_editable
=
[]
ordering
=
[
'
name
'
]
class
WishFilter
(
SimpleListFilter
):
title
=
_
(
"
Wish
"
)
# a label for our filter
parameter_name
=
'
wishes
'
# you can put anything here
@admin.register
(
AKCategory
)
class
AKCategoryAdmin
(
admin
.
ModelAdmin
):
model
=
AKCategory
list_display
=
[
'
name
'
,
'
color
'
,
'
event
'
]
list_filter
=
[
'
event
'
]
list_editable
=
[
'
color
'
]
ordering
=
[
'
name
'
]
@admin.register
(
AKTrack
)
class
AKTrackAdmin
(
admin
.
ModelAdmin
):
model
=
AKTrack
list_display
=
[
'
name
'
,
'
color
'
,
'
event
'
]
list_filter
=
[
'
event
'
]
list_editable
=
[
'
color
'
]
ordering
=
[
'
name
'
]
@admin.register
(
AKTag
)
class
AKTagAdmin
(
admin
.
ModelAdmin
):
model
=
AKTag
list_display
=
[
'
name
'
]
list_filter
=
[]
list_editable
=
[]
ordering
=
[
'
name
'
]
def
lookups
(
self
,
request
,
model_admin
):
# This is where you create filter options; we have two:
return
[
(
'
WISH
'
,
_
(
"
Is wish
"
)),
(
'
NO_WISH
'
,
_
(
"
Is not a wish
"
)),
]
def
queryset
(
self
,
request
,
queryse
t
)
:
annotated_queryset
=
queryset
.
annotate
(
owner_count
=
Count
(
F
(
'
owners
'
)))
if
self
.
value
()
==
'
NO_WISH
'
:
return
annotated_queryset
.
filter
(
owner_count__gt
=
0
)
if
self
.
value
()
==
'
WISH
'
:
return
annotated_queryset
.
filter
(
owner_count
=
0
)
return
queryset
@admin.register
(
AKRequiremen
t
)
class
AKRequirementAdmin
(
admin
.
ModelAdmin
):
model
=
AKRequirement
list_display
=
[
'
name
'
,
'
event
'
]
list_filter
=
[
'
event
'
]
list_editable
=
[]
ordering
=
[
'
name
'
]
class
WishFilter
(
SimpleListFilter
):
title
=
_
(
"
Wish
"
)
# a label for our filter
parameter_name
=
'
wishes
'
# you can put anything here
def
lookups
(
self
,
request
,
model_admin
):
# This is where you create filter options; we have two:
return
[
(
'
WISH
'
,
_
(
"
Is wish
"
)),
(
'
NO_WISH
'
,
_
(
"
Is not a wish
"
)),
]
def
queryset
(
self
,
request
,
queryset
):
annotated_queryset
=
queryset
.
annotate
(
owner_count
=
Count
(
F
(
'
owners
'
)))
if
self
.
value
()
==
'
NO_WISH
'
:
return
annotated_queryset
.
filter
(
owner_count__gt
=
0
)
if
self
.
value
()
==
'
WISH
'
:
return
annotated_queryset
.
filter
(
owner_count
=
0
)
return
queryset
@admin.register
(
AK
)
class
AKAdmin
(
admin
.
ModelAdmin
):
model
=
AK
list_display
=
[
'
name
'
,
'
short_name
'
,
'
category
'
,
'
is_wish
'
]
actions
=
[
'
wiki_expor
t
'
]
list_
filter
=
[
'
category
'
,
WishFilter
]
list_display
=
[
'
name
'
,
'
short_name
'
,
'
category
'
,
'
track
'
,
'
is_wish
'
,
'
interest
'
,
'
event
'
]
list_filter
=
[
'
category
'
,
WishFilter
,
'
even
t
'
]
list_
editable
=
[
'
short_name
'
,
'
track
'
,
'
interest
'
]
ordering
=
[
'
pk
'
]
actions
=
[
'
wiki_export
'
]
def
is_wish
(
self
,
obj
):
return
obj
.
wish
...
...
@@ -62,18 +108,29 @@ class AKAdmin(admin.ModelAdmin):
return
render
(
request
,
'
admin/AKModel/wiki_export.html
'
,
context
=
{
"
AKs
"
:
queryset
})
wiki_export
.
short_description
=
_
(
"
Export to wiki syntax
"
)
is_wish
.
boolean
=
True
admin
.
site
.
register
(
AK
,
AKAdmin
)
admin
.
site
.
register
(
Room
)
@admin.register
(
Room
)
class
RoomAdmin
(
admin
.
ModelAdmin
):
model
=
Room
list_display
=
[
'
name
'
,
'
building
'
,
'
capacity
'
,
'
event
'
]
list_filter
=
[
'
building
'
,
'
properties
'
,
'
event
'
]
list_editable
=
[]
ordering
=
[
'
building
'
,
'
name
'
]
@admin.register
(
AKSlot
)
class
AKSlotAdmin
(
admin
.
ModelAdmin
):
model
=
AKSlot
list_display
=
[
'
id
'
,
'
ak
'
,
'
room
'
,
'
start
'
,
'
duration
'
,
'
event
'
]
list_filter
=
[
'
room
'
,
'
event
'
]
list_editable
=
[
'
ak
'
,
'
room
'
,
'
start
'
,
'
duration
'
]
ordering
=
[
'
start
'
]
readonly_fields
=
[
'
updated
'
]
def
get_form
(
self
,
request
,
obj
=
None
,
change
=
False
,
**
kwargs
):
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment