membre_reseau_institutionnel_details = forms.CharField(required=False, label="Préciser lesquelles et votre fonction")
membre_reseau_institutionnel_dates = forms.CharField(required=False, label="Préciser les dates")
- etablissement = forms.CharField(label='Etablissement', required=True)
- pays_etablissement = forms.ModelChoiceField(label='Pays', queryset=Pays.objects.all(), required=True)
+ pays_etablissement = forms.ModelChoiceField(label="Pays de l'établissement", queryset=Pays.objects.all(), required=True)
+ etablissement = forms.CharField(label="Nom de l'établissement", required=True)
expertises_auf = forms.ChoiceField(
label="Êtes-vous disposé à réaliser des expertises pour l'AUF?",
return render_to_response("chercheurs/conversion.html", {},
context_instance=RequestContext(request))
-def etablissements_autocomplete(request):
+def etablissements_autocomplete(request, pays=None):
term = request.GET.get('term')
- noms = list(Etablissement.objects.filter(nom__icontains=term).values_list('nom', flat=True)[:20])
+ noms = Etablissement.objects.all()
+ for word in term.split():
+ noms = noms.filter(nom__icontains=word)
+ if pays:
+ noms = noms.filter(pays=pays)
+ noms = list(noms.values_list('nom', flat=True)[:20])
json = simplejson.dumps(noms)
return HttpResponse(json, mimetype='application/json')
-
-def etablissements_pays(request):
- etablissement = request.GET.get('etablissement')
- try:
- pays = Etablissement.objects.get(nom=etablissement).pays_id
- except Etablissement.DoesNotExist:
- pays = None
- json = simplejson.dumps(pays)
- return HttpResponse(json, mimetype='application/json')
(function() {
$(document).ready(function() {
+
+ // Fieldsets
$('#expertises fieldset').formset({
prefix: 'expertise',
addText: 'ajouter une expertise',
deleteText: 'supprimer cette publication',
formCssClass: 'dynamic-form-publications'
});
- $('input[name=chercheur-etablissement]').autocomplete({
- source: '/etablissements/autocomplete/',
- select: function(event, ui) {
- var etablissement = ui.item.value;
- $.getJSON(
- '/etablissements/pays/',
- { etablissement: etablissement },
- function(pays) {
- $('select[name=chercheur-pays_etablissement]').val(pays);
- }
- );
- }
- });
+
+ // Auto-complete des établissements
+ var $etablissement = $('input[name=chercheur-etablissement]');
+ $etablissement.autocomplete({ source: '/etablissements/autocomplete/' });
+ $('select[name=chercheur-pays_etablissement]').change(function() {
+ $etablissement.autocomplete('option', 'source', '/etablissements/autocomplete/' + $(this).val() + '/');
+ }).change();
+
+ // Publications legacy
var $edit_publication_link = $('<a class="edit-publication">éditer cette publication</a>');
var $additional_fields = $('.publication_affichage').next();
$additional_fields.after($edit_publication_link).hide();
<fieldset>
<legend>Etablissement de rattachement <span style="color:red">*</span></legend>
<table>
- {% form_field forms.chercheur.etablissement %}
{% form_field forms.chercheur.pays_etablissement %}
+ {% form_field forms.chercheur.etablissement %}
</table>
</fieldset>
(r'^accounts/change_password/$', 'chercheurs.views.change_password'),
(r'^accounts/send_password/$', 'chercheurs.views.send_password'),
(r'^etablissements/autocomplete/$', 'chercheurs.views.etablissements_autocomplete'),
- (r'^etablissements/pays/$', 'chercheurs.views.etablissements_pays'),
+ (r'^etablissements/autocomplete/(?P<pays>.*)/$', 'chercheurs.views.etablissements_autocomplete'),
# section par discipline et/ou région
(r'^discipline/(?P<discipline>\d+)/', include(sep_patterns)),