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)
def show_software_list(context, object_list, sort="software_sort"): request = context['request'] web = webs.software_web() dict = defaults(context) dict['table'] = tables.software(request, web, object_list,request.GET.get(sort)) dict['rows'] = dict['table'].rows dict['web'] = web dict['sort'] = sort return dict
def software_installation_edit_license_key(request,object_id): web = webs.software_installation_web() software_web = webs.software_web() object = get_object_or_404(models.software_installation, pk=object_id) breadcrumbs = software_web.get_view_breadcrumbs(object.software) breadcrumbs.append(webs.breadcrumb(web.get_edit_license_key_url(object),"edit license key")) web = webs.software_installation_web() error = web.check_edit_perms(request, breadcrumbs) if error is not None: return error if request.method == 'POST': form = forms.license_key_select_form(object.software,request.POST,request.FILES) if form.is_valid(): if form.cleaned_data['key'] == "": license_key = None else: license_key = get_object_or_404(models.license_key, pk=form.cleaned_data['key']) object.license_key = license_key object.save() url = software_web.get_view_url(object.software) url = request.GET.get("next",url) return HttpResponseRedirect(url) else: if object.license_key is None: key = "" else: key = object.license_key.pk form = forms.license_key_select_form(object.software,{'key': key}) # fix me, choice may be null return render_to_response('django_webs/object_edit.html', { 'object': object, 'breadcrumbs': breadcrumbs, 'form' : form, 'media' : form.media, },context_instance=RequestContext(request))
def party_software_detail(request, object_id, software_id): if object_id != "none": object = get_object_or_404(models.party, pk=object_id) else: object = models.Nobody() template='lintory/party_software_detail.html' software = get_object_or_404(models.software, pk=software_id) web = webs.party_web() breadcrumbs = web.get_view_breadcrumbs(object) breadcrumbs.append(webs.breadcrumb(web.get_software_list_url(object),"software list")) breadcrumbs.append(webs.breadcrumb(web.get_software_view_url(object, software),software)) return render_to_response(template, { 'party': object, 'software': software, 'software_web': webs.software_web(), 'breadcrumbs': breadcrumbs, },context_instance=RequestContext(request))
def software_delete(request,object_id): web = webs.software_web() object = get_object_or_404(models.software, pk=object_id) return web.object_delete(request, object)
def software_add(request): web = webs.software_web() return web.object_add(request)
def software_list(request): web = webs.software_web() filter = filters.software(request.GET or None) table = tables.software(request, web, filter.qs, order_by=request.GET.get('sort')) return web.object_list(request, filter.form, table)