Veiko Aasa 552fabed15
minidlna: Add media directory selection form
The form provides an option to select default directory, user specified
directory or samba shares if enabled.

The form also checks that the directory exists and is readable by the
minidlna user.

Tested that changing media directory to a samba share location works.

Closes #2084.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2024-05-02 10:59:21 -07:00

36 lines
1009 B
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
"""Views for the minidlna module."""
from django.contrib import messages
from django.utils.translation import gettext_lazy as _
from plinth.views import AppView
from . import privileged
from .forms import MiniDLNAServerForm
class MiniDLNAAppView(AppView):
"""Show minidlna app view."""
app_id = 'minidlna'
form_class = MiniDLNAServerForm
def get_initial(self):
"""Return initial values of the form."""
initial = super().get_initial()
initial.update({'storage_path': privileged.get_media_dir()})
return initial
def form_valid(self, form):
"""Apply changes from the form."""
old_config = form.initial
new_config = form.cleaned_data
if old_config['storage_path'] != new_config['storage_path']:
privileged.set_media_dir(new_config['storage_path'])
messages.success(self.request, _('Updated media directory'))
return super().form_valid(form)