from functools import partial

from django import forms
from django.contrib import messages
from django.db import transaction
from django.shortcuts import render
from django.utils.safestring import mark_safe
from django.utils.text import capfirst
from django.utils.translation import ungettext, ugettext_lazy as _

from orchestra.admin.decorators import action_with_confirmation
from orchestra.admin.utils import change_url
from orchestra.apps.orchestration.models import BackendOperation as Operation


class GrantPermissionForm(forms.Form):
    base_path = forms.ChoiceField(label=_("Grant access to"), choices=(('hola', 'hola'),),
        help_text=_("User will be granted access to this directory."))
    path_extension = forms.CharField(label='', required=False)
    read_only = forms.BooleanField(label=_("Read only"), initial=False, required=False,
            help_text=_("Designates whether the permissions granted will be read-only or read/write."))


@action_with_confirmation(extra_context=dict(form=GrantPermissionForm()))
def grant_permission(modeladmin, request, queryset):
    user = queryset.get()
    log = Operation.execute_action(user, 'grant_permission')
    # TODO
grant_permission.url_name = 'grant-permission'
grant_permission.verbose_name = _("Grant permission")