def editItem(request, name, id, form=None, template_name=EDIT_ITEM_TEMPLATE, delete=False): """ Edit an user item profile """ info (request, 'editItem', 'Editing an item') try: obj = getObj(request, name, id) except Http404: warning (request, 'editItem', "Requested an item which doesn't exist: %s" % name) raise Http404 if delete: obj.delete() return HttpResponseRedirect(reverse("showItem", args=[name])) baseItemMenu(request, name) form = getForm(request, name, obj, editing=True) if form.is_valid(): form.save(commit=True) return HttpResponseRedirect(reverse("showItem", args=[name])) return render_to_response(template_name, { "form": form, "name": name, "id": id, 'profile': request.session['profile'], }, context_instance=RequestContext(request))
def getObj(request, name="Unk", id=None): """ Returns a object list according the url specified, or a defined object trough an id. """ try: data = ITEM_URL_DICT[name] except KeyError: warning (request, 'getObj', "Requested an item which doesn't exist: %(name)s" % {'name': name}) raise Http404 if id: item = get_object_or_404(data['model'], id=id) return item objlist = getListFromQuery(request, objModel=data['model'], id=id, name=name) return objlist
def baseItemMenu(request, name=None): """ Generates the base item menu """ m = [] if name in URL_GROUP_ITEMS.keys(): group = name elif name in ITEM_URL_DICT: group = getGroupname_from_urlname(name) else: warning(request, 'baseItemMenu', "Requested an url which doesn't exist: %(name)s" % {'name': name} ) raise Http404 logMenu = appendMenu(m, getGroupFullname(group), reverse('showItemSummary', args=[group] ) ) for url in URL_GROUP_ITEMS[group]: if 'label' in ITEM_URL_DICT[url].keys(): appendSubmenu (m, logMenu, ITEM_URL_DICT[url]['label'], reverse('showItem', args=[url])) else: appendSubmenu (m, logMenu, ITEM_URL_DICT[url]['model']._meta.verbose_name, reverse('showItem', args=[url])) setLeftMenu (request, m, _('Summary') )
def getRow(request, block, keyfield, obj, urlname=None): # Special cases: # Handling choicefields. if keyfield in CHOICE_FIELDS.keys(): fullname = getNameFromTuple(CHOICE_FIELDS[keyfield], obj[keyfield]) if fullname: block.append(fullname) return None else: warning (request, 'getRow', "Requested field: %s, which doesn't exist for %s. Fields are: %s" % (keyfield, urlname, obj) ) if keyfield in 'action': num = obj[keyfield] for item in ADMIN_COMMAND_LIST_CHOICES: if item[0] is num: block.append(item[1]) return None else: warning (request, 'getRow', "Requested field: %s, which doesn't exist for %s. Fields are: %s" % (keyfield, urlname, obj) ) # Adding the field by default try: block.append(obj[keyfield]) return None except KeyError: pass new_keyfield = keyfield + '_id' try: primaryKey = obj[new_keyfield] except KeyError: warning (request, 'getRow', "Requested field: %s, which doesn't exist for %s. Fields are: %s" % (keyfield, urlname, obj) ) raise Http404 # Lets get the unicode data if new_keyfield in SPECIAL_KEYFIELDS.keys(): model = SPECIAL_KEYFIELDS[new_keyfield] try: data = model.objects.get(pk=primaryKey) except model.DoesNotExist: data = None block.append(data) return None return None
def index(request): """ Login view """ if not request.user or not request.user.is_authenticated(): # Not autenticate user, show login form form = loginForm () if request.method == 'POST': form = loginForm (request.POST) if form.is_valid (): user = authenticate (username = form.data['username'], password = form.data['password'] ) if user is not None: login (request, user) info (request, 'index', 'User %(username)s logged in ' % {'username':user.username} ) request.session['profile'] = getProfile (user) menu = request.session['profile'] if request.GET.has_key ('next'): return HttpResponseRedirect(request.GET['next']) data = {} try: credits = {} u = Customer.objects.get(id=request.user.id) for account in u.account_set.all(): credits[account.name] = account data['credit'] = credits except Customer.DoesNotExist: if checkAdmin(user): for account in Account.objects.all(): credits[account.name] = account data['credit'] = credits data['profile'] = menu return render_to_response(TEMPLATES['root'], data, RequestContext (request) ) else: warning (request, 'index', 'Invalid username or password' ) form.errors['username'] = [ _('Invalid username and password') ] else: warning (request, 'index', _('Posted values not valid')) else: info (request, 'index', 'Showing login form') data = {} data['form'] = form data['profile'] = getProfile(request.user) return render_to_response(TEMPLATES['login'], data , RequestContext (request)) else: # Autenticate user try: data = {} try: credits = {} user = Customer.objects.get(id=request.user.id) for account in user.account_set.all(): credits[account.name] = account data['credit'] = credits except Customer.DoesNotExist: if (checkAdmin(request.user)): for account in Account.objects.all(): credits[account.name] = account data['credit'] = credits data['profile'] = request.session['profile'] data['showInfoToUser'] = getOutputMsg(request) return render_to_response(TEMPLATES['root'], data, RequestContext (request) ) except KeyError: # Profile not correctly loaded, so we log out # and ask for login return logout_view(request)