1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- from django.contrib import messages
- from django.utils.translation import ugettext_lazy as _
- from misago.admin.views import generic
- from misago.users.datadownloads import (
- expire_user_data_download, request_user_data_download, user_has_data_download_request)
- from misago.users.forms.admin import RequestDataDownloadsForm, SearchDataDownloadsForm
- from misago.users.models import DataDownload
- class DataDownloadAdmin(generic.AdminBaseMixin):
- root_link = 'misago:admin:users:data-downloads:index'
- templates_dir = 'misago/admin/datadownloads'
- model = DataDownload
- class DataDownloadsList(DataDownloadAdmin, generic.ListView):
- items_per_page = 30
- ordering = [
- ('-id', _("From newest")),
- ('id', _("From oldest")),
- ]
- selection_label = _('With data downloads: 0')
- empty_selection_label = _('Select data downloads')
- mass_actions = [
- {
- 'action': 'expire',
- 'name': _("Expire downloads"),
- 'icon': 'fa fa-ban',
- 'confirmation': _("Are you sure you want to set selected data downloads as expired?"),
- },
- {
- 'action': 'delete',
- 'name': _("Delete downloads"),
- 'icon': 'fa fa-times-circle',
- 'confirmation': _("Are you sure you want to delete selected data downloads?"),
- },
- ]
- def get_queryset(self):
- qs = super(DataDownloadsList, self).get_queryset()
- return qs.select_related('user', 'requester')
-
- def get_search_form(self, request):
- return SearchDataDownloadsForm
- def action_expire(self, request, data_downloads):
- for data_download in data_downloads:
- expire_user_data_download(data_download)
- messages.success(request, _("Selected data downloads have been set as expired."))
- def action_delete(self, request, data_downloads):
- for data_download in data_downloads:
- data_download.delete()
- messages.success(request, _("Selected data downloads have been deleted."))
- class RequestDataDownloads(DataDownloadAdmin, generic.FormView):
- form = RequestDataDownloadsForm
- def handle_form(self, form, request):
- for user in form.cleaned_data['users']:
- if not user_has_data_download_request(user):
- request_user_data_download(user, requester=request.user)
- messages.success(request, _("Data downloads have been requested for specified users."))
|