Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
hub
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Package registry
Operate
Terraform modules
Analyze
Contributor analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
thomasDOTwtf
hub
Commits
902438ad
Commit
902438ad
authored
4 months ago
by
Roang
Browse files
Options
Downloads
Patches
Plain Diff
Refactor event view
- Use DetailView for EventView - Ue new properties of Event model in template
parent
e975f7bf
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/plainui/jinja2/plainui/event.html.j2
+15
-15
15 additions, 15 deletions
src/plainui/jinja2/plainui/event.html.j2
src/plainui/views/events.py
+14
-20
14 additions, 20 deletions
src/plainui/views/events.py
with
29 additions
and
35 deletions
src/plainui/jinja2/plainui/event.html.j2
+
15
−
15
View file @
902438ad
...
@@ -19,27 +19,33 @@
...
@@ -19,27 +19,33 @@
{% extends "plainui/base.html.j2" %}
{% extends "plainui/base.html.j2" %}
{% block title %}
{% block title %}
{{ event.name }} - {{
conf
.slug.upper() }}
{{ event.name }} - {{
event.conference
.slug.upper() }}
{% endblock title %}
{% endblock title %}
{% block head %}
{% block head %}
<script src="{{ static('plainui/js/player.js') }}"></script>
<script src="{{ static('plainui/js/player.js') }}"></script>
{% endblock head %}
{% endblock head %}
{% block content %}
{% block content %}
{% set current_assembly = {
"link": url('plainui:assembly', assembly_slug=event.assembly.slug),
"name": event.assembly.name,
"is_official": event.assembly.is_official,
} if event.assembly and event.assembly.slug else {} %}
<article class="mt-10">
<article class="mt-10">
{{ navMacro.top_nav(_("Event") , has_breadcrumbs=True) }}
{{ navMacro.top_nav(_("Event") , has_breadcrumbs=True) }}
<nav aria-label="breadcrumb">
<nav aria-label="breadcrumb">
<ol class="breadcrumb hub-breadcrumbs">
<ol class="breadcrumb hub-breadcrumbs">
<li class="breadcrumb-item">
<li class="breadcrumb-item">
<a href="{{ url('plainui:index') }}">{{
conf
.name }}</a>
<a href="{{ url('plainui:index') }}">{{
event.conference
.name }}</a>
</li>
</li>
{% if not assembly.is_official %}
{% if not
current_
assembly.is_official %}
<li class="breadcrumb-item">
<li class="breadcrumb-item">
<a href="{{ url('plainui:assemblies') }}">{{ _("assemblies") }}</a>
<a href="{{ url('plainui:assemblies') }}">{{ _("assemblies") }}</a>
</li>
</li>
{% endif %}
{% endif %}
<li class="breadcrumb-item">
<li class="breadcrumb-item">
<a href="{{ ur
l('plainui:assembly', assembly_slug=
assembly.
slug)
}}">{{ assembly.name }}</a>
<a href="{{
c
ur
rent_
assembly.
link
}}">{{
current_
assembly.name }}</a>
</li>
</li>
{% if event.room and event.room.name %}
{% if event.room and event.room.name %}
<li class="breadcrumb-item">
<li class="breadcrumb-item">
...
@@ -49,12 +55,6 @@
...
@@ -49,12 +55,6 @@
</ol>
</ol>
</nav>
</nav>
{% set current_assembly = {
"link": url('plainui:assembly', assembly_slug=assembly.slug),
"name": assembly.name,
"is_official": assembly.is_official,
} if assembly and assembly.slug else {} %}
<div class="hub-vlayout">
<div class="hub-vlayout">
<div class="hub-row">
<div class="hub-row">
<div class="hub-col hub-col-remaining hub-card hub-hlayout-l">
<div class="hub-col hub-col-remaining hub-card hub-hlayout-l">
...
@@ -72,7 +72,7 @@
...
@@ -72,7 +72,7 @@
<div class="hub-vlayout">
<div class="hub-vlayout">
<div class="hub-head-main">{{ event.name }}</div>
<div class="hub-head-main">{{ event.name }}</div>
{% if event.room or speakers or event.language %}
{% if event.room or
event.public_
speakers or event.language %}
<div class="hub-tags">
<div class="hub-tags">
{% if event.room %}
{% if event.room %}
{{ tagboxMacro.tag(event.room.name,
{{ tagboxMacro.tag(event.room.name,
...
@@ -82,8 +82,8 @@
...
@@ -82,8 +82,8 @@
) }}
) }}
{% endif %}
{% endif %}
{% if speakers %}
{% if
event.public_
speakers %}
{% for speaker in speakers %}
{% for speaker in
event.public_
speakers %}
{{ tagboxMacro.user(speaker.get_display_name() ,
{{ tagboxMacro.user(speaker.get_display_name() ,
link=url('plainui:user', user_slug=speaker.slug)
link=url('plainui:user', user_slug=speaker.slug)
) }}
) }}
...
@@ -117,7 +117,7 @@
...
@@ -117,7 +117,7 @@
</div>
</div>
{% endif %}
{% endif %}
{% if tags %}{{ tagboxMacro.tagbox(tags, icon='tag') }}{% endif %}
{% if
event.public_
tags %}{{ tagboxMacro.tagbox(
event.public_
tags, icon='tag') }}{% endif %}
</div>
</div>
</div>
</div>
...
@@ -144,7 +144,7 @@
...
@@ -144,7 +144,7 @@
{% endif %}
{% endif %}
{%- if not event.is_sos and can_manage -%}
{%- if not event.is_sos and can_manage -%}
{{ fbtns.edit(hub_absolute('backoffice:assembly-event', assembly=assembly.id, pk=event.id) ,
{{ fbtns.edit(hub_absolute('backoffice:assembly-event', assembly=
event.
assembly.id, pk=event.id) ,
color="secondary", margin=False) }}
color="secondary", margin=False) }}
{%- elif event.is_sos and can_manage -%}
{%- elif event.is_sos and can_manage -%}
{{ fbtns.edit(hub_absolute('backoffice:sos-edit', pk=event.id) , color="secondary", margin=False) }}
{{ fbtns.edit(hub_absolute('backoffice:sos-edit', pk=event.id) , color="secondary", margin=False) }}
...
...
This diff is collapsed.
Click to expand it.
src/plainui/views/events.py
+
14
−
20
View file @
902438ad
...
@@ -5,15 +5,15 @@ __all__ = (
...
@@ -5,15 +5,15 @@ __all__ = (
'
UpcomingView
'
,
'
UpcomingView
'
,
)
)
from
django.contrib.contenttypes.models
import
ContentType
from
typing
import
Any
from
django.shortcuts
import
get_object_or_404
from
django.db.models.query
import
QuerySet
from
django.urls
import
reverse
from
django.urls
import
reverse
from
django.views.generic
import
DetailView
from
django.views.generic.base
import
TemplateView
from
django.views.generic.base
import
TemplateView
from
core.models
import
(
from
core.models
import
(
Event
,
Event
,
EventAttachment
,
TagItem
,
)
)
from
core.views.list_views
import
FilteredListView
from
core.views.list_views
import
FilteredListView
...
@@ -37,24 +37,24 @@ class AssembliesEventsView(ConferenceRequiredMixin, TemplateView):
...
@@ -37,24 +37,24 @@ class AssembliesEventsView(ConferenceRequiredMixin, TemplateView):
return
context
return
context
class
EventView
(
ConferenceRequiredMixin
,
Template
View
):
class
EventView
(
ConferenceRequiredMixin
,
Detail
View
):
template_name
=
'
plainui/event.html.j2
'
template_name
=
'
plainui/event.html.j2
'
slug_field
=
'
slug__iexact
'
slug_url_kwarg
=
'
event_slug
'
context_object_name
=
'
event
'
def
get_queryset
(
self
)
->
QuerySet
[
Any
]:
return
Event
.
objects
.
conference_accessible
(
self
.
conf
).
select_related
(
'
assembly
'
,
'
owner
'
,
'
track
'
)
def
get_context_data
(
self
,
event_slug
,
**
kwargs
):
def
get_context_data
(
self
,
**
kwargs
):
if
not
Event
.
type_is
(
event
:
=
self
.
get_object
()):
# pragma: no cover
raise
ValueError
(
f
'
Object
{
event
}
is not an Event
'
)
context
=
super
().
get_context_data
(
**
kwargs
)
context
=
super
().
get_context_data
(
**
kwargs
)
context
[
'
conf
'
]
=
self
.
conf
event
=
get_object_or_404
(
Event
.
objects
.
conference_accessible
(
self
.
conf
).
select_related
(
'
assembly
'
,
'
owner
'
,
'
track
'
),
slug
=
event_slug
)
context
[
'
event
'
]
=
event
favorites
=
session_get_favorite_events
(
self
.
request
.
session
,
self
.
request
.
user
)
favorites
=
session_get_favorite_events
(
self
.
request
.
session
,
self
.
request
.
user
)
context
[
'
is_favorite
'
]
=
str
(
event
.
id
)
in
favorites
context
[
'
is_favorite
'
]
=
str
(
event
.
id
)
in
favorites
context
[
'
is_favorite_events
'
]
=
favorites
context
[
'
is_favorite_events
'
]
=
favorites
context
[
'
can_manage
'
]
=
event
.
can_manage
(
self
.
request
.
user
)
context
[
'
can_manage
'
]
=
event
.
can_manage
(
self
.
request
.
user
)
context
[
'
speakers
'
]
=
event
.
public_speakers
context
[
'
tags
'
]
=
TagItem
.
objects
.
select_related
(
'
tag
'
).
filter
(
tag__is_public
=
True
,
target_type
=
ContentType
.
objects
.
get_for_model
(
Event
),
target_id
=
event
.
pk
)
context
[
'
assembly
'
]
=
event
.
assembly
now
=
self
.
now
now
=
self
.
now
if
event
.
schedule_start
is
None
or
event
.
schedule_end
is
None
:
if
event
.
schedule_start
is
None
or
event
.
schedule_end
is
None
:
running_state
=
''
running_state
=
''
...
@@ -66,11 +66,6 @@ class EventView(ConferenceRequiredMixin, TemplateView):
...
@@ -66,11 +66,6 @@ class EventView(ConferenceRequiredMixin, TemplateView):
running_state
=
'
upcoming
'
running_state
=
'
upcoming
'
context
[
'
running_state
'
]
=
running_state
context
[
'
running_state
'
]
=
running_state
context
[
'
attachments
'
]
=
EventAttachment
.
objects
.
filter
(
event
=
event
,
visibility__in
=
[
EventAttachment
.
Visibility
.
PUBLIC
,
EventAttachment
.
Visibility
.
CONFERENCE
]
)
context
[
'
report_info
'
]
=
{
'
lookup_key
'
:
event
.
slug
}
context
[
'
report_info
'
]
=
{
'
url
'
:
reverse
(
'
plainui:event
'
,
kwargs
=
{
'
event_slug
'
:
event
.
slug
})}
context
[
'
report_info
'
]
=
{
'
url
'
:
reverse
(
'
plainui:event
'
,
kwargs
=
{
'
event_slug
'
:
event
.
slug
})}
context
[
'
fav_info
'
]
=
{
'
type
'
:
'
event
'
,
'
id
'
:
event
.
id
,
'
is
'
:
str
(
event
.
id
)
in
favorites
}
context
[
'
fav_info
'
]
=
{
'
type
'
:
'
event
'
,
'
id
'
:
event
.
id
,
'
is
'
:
str
(
event
.
id
)
in
favorites
}
...
@@ -106,7 +101,6 @@ class SosList(ConferenceRequiredMixin, FilteredListView):
...
@@ -106,7 +101,6 @@ class SosList(ConferenceRequiredMixin, FilteredListView):
context
[
'
conf
'
]
=
self
.
conf
context
[
'
conf
'
]
=
self
.
conf
context
[
'
events_upcoming
'
]
=
event_filter
(
self
.
request
.
user
,
self
.
conf
,
kinds
=
[
Event
.
Kind
.
SELF_ORGANIZED
],
calendar_mode
=
False
,
upcoming
=
True
)
context
[
'
events_upcoming
'
]
=
event_filter
(
self
.
request
.
user
,
self
.
conf
,
kinds
=
[
Event
.
Kind
.
SELF_ORGANIZED
],
calendar_mode
=
False
,
upcoming
=
True
)
context
[
'
events
'
]
=
event_filter
(
self
.
request
.
user
,
self
.
conf
,
kinds
=
[
Event
.
Kind
.
SELF_ORGANIZED
],
calendar_mode
=
False
)
context
[
'
is_favorite_events
'
]
=
session_get_favorite_events
(
self
.
request
.
session
,
self
.
request
.
user
)
context
[
'
is_favorite_events
'
]
=
session_get_favorite_events
(
self
.
request
.
session
,
self
.
request
.
user
)
context
[
'
manageable_events
'
]
=
Event
.
objects
.
manageable_by_user
(
self
.
conf
,
user
=
self
.
request
.
user
).
only
(
'
id
'
)
context
[
'
manageable_events
'
]
=
Event
.
objects
.
manageable_by_user
(
self
.
conf
,
user
=
self
.
request
.
user
).
only
(
'
id
'
)
...
...
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