diff options
Diffstat (limited to 'ishtar')
| -rw-r--r-- | ishtar/furnitures/context_processors.py | 14 | ||||
| -rw-r--r-- | ishtar/furnitures/forms.py | 9 | ||||
| -rw-r--r-- | ishtar/furnitures/models.py | 7 | ||||
| -rw-r--r-- | ishtar/furnitures/urls.py | 2 | ||||
| -rw-r--r-- | ishtar/furnitures/views.py | 8 | ||||
| -rw-r--r-- | ishtar/templates/base.html | 21 |
6 files changed, 57 insertions, 4 deletions
diff --git a/ishtar/furnitures/context_processors.py b/ishtar/furnitures/context_processors.py index df401cda0..ed6fb1252 100644 --- a/ishtar/furnitures/context_processors.py +++ b/ishtar/furnitures/context_processors.py @@ -17,11 +17,14 @@ # See the file COPYING for details. +from django.utils.translation import ugettext, ugettext_lazy as _ + from ishtar import settings from menus import Menu +import models def get_base_context(request): - dct = {} + dct = {'URL_PATH':settings.URL_PATH} if settings.APP_NAME: dct["APP_NAME"] = settings.APP_NAME dct["COUNTRY"] = settings.COUNTRY @@ -35,5 +38,14 @@ def get_base_context(request): dct['MENU'] = request.session['MENU'] dct['JQUERY_URL'] = settings.JQUERY_URL dct['JQUERY_UI_URL'] = settings.JQUERY_UI_URL + dct['current_menu'] = [] + for lbl, model in ((_(u"Archaelogical file"), models.File),): + model_name = model.__name__.lower() + current = model_name in request.session and request.session[model_name] + items = [] + for item in model.get_owns(request.user): + items.append((item.pk, unicode(item), unicode(item.pk) == current)) + if items: + dct['current_menu'].append((lbl, model_name, items)) return dct diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 64acaa5c5..6c1b48fc4 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -295,6 +295,13 @@ class Wizard(NamedUrlSessionFormWizard): if current_obj: return self.get_instanced_init(current_obj, request, storage, step) + elif step.startswith('selec-') and step in self.form_list \ + and 'pk' in self.form_list[step].associated_models: + model_name = self.form_list[step].associated_models['pk' + ].__name__.lower() + val = model_name in request.session and request.session[model_name] + if val: + return {'pk':val} return super(Wizard, self).get_form_initial(request, storage, step) def get_instanced_init(self, obj, request, storage, step): @@ -419,7 +426,7 @@ def get_now(): class FileFormSelection(forms.Form): form_label = _("Archaelogical file") associated_models = {'pk':models.File} - pk = forms.IntegerField(label=_("Archaelogical file"), + pk = forms.IntegerField(label=_("References/location"), widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-file'), associated_model=models.File), validators=[models.valid_id(models.File)]) diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index 6664adb72..ef5ad8cb2 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -269,6 +269,13 @@ class File(BaseHistorizedItem, OwnPerms): items = [u'%d-%d' % (self.year, self.numeric_reference)] + items return u" - ".join(items) + @classmethod + def get_owns(cls, user, order_by=['-year', '-numeric_reference']): + if user.is_anonymous(): + return [] + return cls.objects.filter(history_modifier=user).order_by(*order_by + ).all() + class OperationType(GeneralType): class Meta: verbose_name = _(u"Operation type") diff --git a/ishtar/furnitures/urls.py b/ishtar/furnitures/urls.py index 4a9349700..762aa135f 100644 --- a/ishtar/furnitures/urls.py +++ b/ishtar/furnitures/urls.py @@ -47,4 +47,6 @@ urlpatterns += patterns('ishtar.furnitures.views', name='autocomplete-organization'), url(BASE_URL + r'autocomplete-file/$', 'autocomplete_file', name='autocomplete-file'), + url(BASE_URL + r'update-current-item/$', 'update_current_item', + name='update-current-item'), ) diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index dcf0f28d9..ba05d0b39 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -42,6 +42,14 @@ def index(request): return render_to_response('index.html', dct, context_instance=RequestContext(request)) +def update_current_item(request): + if not request.is_ajax() and not request.method == 'POST': + return Http404() + print request.POST + if 'value' in request.POST and 'item' in request.POST: + request.session[request.POST['item']] = request.POST['value'] + return HttpResponse('ok') + def check_permission(request, action_slug, obj_id=None): if obj_id: return menu.items[action_slug].is_available(request.user, obj_id) diff --git a/ishtar/templates/base.html b/ishtar/templates/base.html index 6a1136021..2b2b440c8 100644 --- a/ishtar/templates/base.html +++ b/ishtar/templates/base.html @@ -8,13 +8,15 @@ <link rel="shortcut icon" href="{{MEDIA_URL}}/media/images/favicon.png"> <title>{% block title %}Ishtar{% if APP_NAME %} - {{APP_NAME}}{%endif%}{% endblock %} </title> + <script language="javascript" type="text/javascript"> + var url_path = "{{URL_PATH}}"; + </script> <script language="javascript" type="text/javascript" src="{{JQUERY_URL}}"></script> <script language="javascript" type="text/javascript" src="{{JQUERY_UI_URL}}jquery-ui.js"></script> <script language="javascript" type="text/javascript" src="{{JQUERY_UI_URL}}ui/i18n/jquery.ui.datepicker-{{COUNTRY}}.js"></script> <script language="javascript" type="text/javascript" src="{{MEDIA_URL}}/js/ishtar.js"></script> <link type="text/css" href="{{JQUERY_UI_URL}}css/smoothness/jquery-ui.css" rel="stylesheet" /> </head> - <body> <div id="header"> {% block header %} @@ -31,7 +33,22 @@ {% if APP_NAME %}<p id="app_name">{{APP_NAME}}</p>{%endif%} </div> <div id="context_menu"> - {% block context %}{% endblock %} + {% block context %}{% if current_menu %} + <form method="post" action="{% url update-current-item %}"> + <fieldset> + <legend>{% trans "Default items"%}</legend> + <ul id='current_items'> + {% for lbl, model_name, items in current_menu %} + <li><label for="current_{{model_name}}">{{lbl}}</label> + <select id='current_{{model_name}}'> + <option value=''>--</option> + {% for val, label, selected in items %}<option value='{{val}}'{%if selected%} selected="selected"{%endif%}>{{label}}</option> + {% endfor %}</select></li> + {% endfor %} + </ul> + </fieldset> + </form> + {% endif %}{% endblock %} </div> <div id="main_menu"> <ul> |
