示例#1
0
文件: views.py 项目: VPAC/lintory
def software_add_license(request,object_id):
    object = get_object_or_404(models.software, pk=object_id)
    web = webs.software_web()
    breadcrumbs = web.get_view_breadcrumbs(object)
    breadcrumbs.append(webs.breadcrumb(web.get_add_license_url(object),"add software license"))

    l_web = webs.license_web()
    error = l_web.check_add_perms(request, breadcrumbs)
    if error is not None:
        return error

    if request.method == 'POST':
        form = forms.license_add_form(request.POST, request.FILES)

        if form.is_valid():
            valid = True
            # we try to get license_key first, in case something goes wrong.
            # if something goes wrong, no license will be created.
            key = form.cleaned_data['key'].strip()
            lk_web = webs.license_key_web()
            try:
                # try to find existing license for key
                if lk_web.has_edit_perms(request.user):
                    license_key = models.license_key.objects.get(key=key,software=object)
                else:
                    msg = u"License key exists and no permission to modify"
                    form._errors["key"] = util.ErrorList([msg])
                    valid = False
            except models.license_key.DoesNotExist, e:
                # no license found, we have to create one
                if lk_web.has_add_perms(request.user):
                    license_key = models.license_key()
                    license_key.software = object
                    license_key.key = key
                else:
                    msg = u"License key doesn't exist and no permission to add one"
                    form._errors["key"] = util.ErrorList([msg])
                    valid = False

            # Can we continue?
            if valid:
                # we need to create the license license
                license = models.license()
                license.vendor_tag = form.cleaned_data['vendor_tag']
                license.installations_max = form.cleaned_data['installations_max']
                license.version = form.cleaned_data['version']
                license.expires = form.cleaned_data['expires']
                license.owner = form.cleaned_data['owner']
                license.save()

                # Update license_key with license we just got
                license_key.license = license
                license_key.save()

                # we finished
                url = l_web.get_view_url(license)
                url = request.GET.get("next",url)
                return HttpResponseRedirect(url)
示例#2
0
文件: inventory.py 项目: VPAC/lintory
def show_license_list(context, object_list, sort="license_sort"):
    request = context['request']
    web = webs.license_web()
    dict = defaults(context)
    dict['table'] = tables.license(request, web, object_list,request.GET.get(sort))
    dict['rows'] = dict['table'].rows
    dict['web'] = web
    dict['sort'] = sort
    return dict
示例#3
0
文件: views.py 项目: VPAC/lintory
def license_delete(request,object_id):
    web = webs.license_web()
    object = get_object_or_404(models.license, pk=object_id)
    return web.object_delete(request, object)
示例#4
0
文件: views.py 项目: VPAC/lintory
def license_add(request):
    web = webs.license_web()
    return web.object_add(request)
示例#5
0
文件: views.py 项目: VPAC/lintory
def license_list(request):
    web = webs.license_web()
    filter = filters.license(request.GET or None)
    table = tables.license(request, web, filter.qs, order_by=request.GET.get('sort'))
    return web.object_list(request, filter.form, table)