diff --git a/allianceauth/optimer/templates/optimer/dashboard.ops.html b/allianceauth/optimer/templates/optimer/dashboard.ops.html
index a21e6306..9432b33d 100644
--- a/allianceauth/optimer/templates/optimer/dashboard.ops.html
+++ b/allianceauth/optimer/templates/optimer/dashboard.ops.html
@@ -7,7 +7,7 @@
{% translate "Upcoming Fleets" %}
-
+
diff --git a/allianceauth/optimer/views.py b/allianceauth/optimer/views.py
index f3627e89..760879e6 100644
--- a/allianceauth/optimer/views.py
+++ b/allianceauth/optimer/views.py
@@ -14,9 +14,11 @@ from .models import OpTimer, OpTimerType
logger = logging.getLogger(__name__)
+OPS_VIEW_PERMISSION = 'auth.optimer_view'
+OPS_MANAGE_PERMISSION = 'auth.optimer_management'
@login_required
-@permission_required('auth.optimer_view')
+@permission_required(OPS_VIEW_PERMISSION)
def optimer_view(request):
"""
View for the optimer management page
@@ -39,7 +41,7 @@ def optimer_view(request):
@login_required
-@permission_required('auth.optimer_management')
+@permission_required(OPS_MANAGE_PERMISSION)
def add_optimer_view(request):
"""
View for the add optimer page
@@ -98,7 +100,7 @@ def add_optimer_view(request):
@login_required
-@permission_required('auth.optimer_management')
+@permission_required(OPS_MANAGE_PERMISSION)
def remove_optimer(request, optimer_id):
"""
Remove optimer
@@ -121,7 +123,7 @@ def remove_optimer(request, optimer_id):
@login_required
-@permission_required('auth.optimer_management')
+@permission_required(OPS_MANAGE_PERMISSION)
def edit_optimer(request, optimer_id):
"""
Edit optimer
@@ -192,14 +194,22 @@ def dashboard_ops(request):
:return:
:rtype:
"""
+ if request.user.has_perm(OPS_VIEW_PERMISSION):
+ base_query = OpTimer.objects.select_related('eve_character', 'type')
+ timers = base_query.filter(
+ start__gte=timezone.now()
+ )[:5]
- base_query = OpTimer.objects.select_related('eve_character', 'type')
- timers = base_query.filter(start__gte=timezone.now())[:5]
-
- if timers.count():
- context = {
- 'timers': timers,
- }
- return render_to_string('optimer/dashboard.ops.html', context=context, request=request)
+ if timers.count():
+ context = {
+ 'timers': timers,
+ }
+ return render_to_string(
+ 'optimer/dashboard.ops.html',
+ context=context,
+ request=request
+ )
+ else:
+ return ""
else:
return ""
diff --git a/allianceauth/timerboard/templates/timerboard/dashboard.timers.html b/allianceauth/timerboard/templates/timerboard/dashboard.timers.html
index be0cef02..0e8b69c0 100644
--- a/allianceauth/timerboard/templates/timerboard/dashboard.timers.html
+++ b/allianceauth/timerboard/templates/timerboard/dashboard.timers.html
@@ -6,7 +6,7 @@
{% translate "Upcoming Timers" %}
-
+
diff --git a/allianceauth/timerboard/views.py b/allianceauth/timerboard/views.py
index c39f94f1..780adba3 100644
--- a/allianceauth/timerboard/views.py
+++ b/allianceauth/timerboard/views.py
@@ -20,6 +20,9 @@ from allianceauth.timerboard.models import Timer
logger = logging.getLogger(__name__)
+TIMER_VIEW_PERMISSION = 'auth.timer_view'
+TIMER_MANAGE_PERMISSION = 'auth.timer_management'
+
class BaseTimerView(LoginRequiredMixin, PermissionRequiredMixin, View):
pass
@@ -27,7 +30,7 @@ class BaseTimerView(LoginRequiredMixin, PermissionRequiredMixin, View):
class TimerView(BaseTimerView):
template_name = 'timerboard/view.html'
- permission_required = 'auth.timer_view'
+ permission_required = TIMER_VIEW_PERMISSION
def get(self, request):
logger.debug(f"timer_view called by user {request.user}")
@@ -48,7 +51,7 @@ class TimerView(BaseTimerView):
class TimerManagementView(BaseTimerView):
- permission_required = 'auth.timer_management'
+ permission_required = TIMER_MANAGE_PERMISSION
index_redirect = 'timerboard:view'
success_url = reverse_lazy(index_redirect)
model = Timer
@@ -74,8 +77,13 @@ class AddTimerView(TimerManagementView, AddUpdateMixin, CreateView):
def form_valid(self, form):
result = super().form_valid(form)
timer = self.object
- logger.info(f"Created new timer in {timer.system} at {timer.eve_time} by user {self.request.user}")
- messages.success(self.request, _('Added new timer in %(system)s at %(time)s.') % {"system": timer.system, "time": timer.eve_time})
+ logger.info(
+ f"Created new timer in {timer.system} at {timer.eve_time} by user {self.request.user}"
+ )
+ messages.success(
+ self.request,
+ _('Added new timer in %(system)s at %(time)s.') % {"system": timer.system, "time": timer.eve_time}
+ )
return result
@@ -93,18 +101,29 @@ class RemoveTimerView(TimerManagementView, DeleteView):
def dashboard_timers(request):
- try:
- corp = request.user.profile.main_character.corporation
- except (EveCorporationInfo.DoesNotExist, AttributeError):
- return ""
+ if request.user.has_perm(TIMER_VIEW_PERMISSION):
+ try:
+ corp = request.user.profile.main_character.corporation
+ except (EveCorporationInfo.DoesNotExist, AttributeError):
+ return ""
- timers = Timer.objects.select_related('eve_character').filter((Q(eve_corp__isnull=True) | Q(eve_corp=corp)) ,eve_time__gte=timezone.now())[:5]
+ timers = Timer.objects.select_related(
+ 'eve_character'
+ ).filter(
+ (Q(corp_timer=True) & Q(eve_corp=corp)) | Q(corp_timer=False),
+ eve_time__gte=timezone.now()
+ )[:5]
- if timers.count():
- context = {
- 'timers': timers,
- }
+ if timers.count():
+ context = {
+ 'timers': timers,
+ }
- return render_to_string(template_name='timerboard/dashboard.timers.html', context=context, request=request)
+ return render_to_string(
+ template_name='timerboard/dashboard.timers.html',
+ context=context, request=request
+ )
+ else:
+ return ""
else:
return ""