mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-12 22:10:16 +02:00
Merge branch 'timerboard-perms' into 'v4.x'
Add Dashboard Widget View Perms See merge request allianceauth/allianceauth!1602
This commit is contained in:
commit
5e4d1b9cfd
@ -7,7 +7,7 @@
|
||||
<h4 class="card-title text-center">{% translate "Upcoming Fleets" %}</h4>
|
||||
|
||||
<div class="card-body">
|
||||
<div style="height: 300px; overflow-y:auto;">
|
||||
<div>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -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 ""
|
||||
|
@ -6,7 +6,7 @@
|
||||
<div class="card-body">
|
||||
<h4 class="card-title text-center">{% translate "Upcoming Timers" %}</h4>
|
||||
<div class="card-body">
|
||||
<div style="height: 300px; overflow-y:auto;">
|
||||
<div>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -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 ""
|
||||
|
Loading…
x
Reference in New Issue
Block a user