Allow defining prioritary availabilities
This commit is contained in:
parent
d4e9e44940
commit
5913c0588f
5 changed files with 14 additions and 6 deletions
|
|
@ -136,7 +136,7 @@ class AvailabilityAdminForm(forms.ModelForm):
|
|||
comment=instance.comment)
|
||||
return instance
|
||||
|
||||
class AvailabilityInline(admin.TabularInline):
|
||||
class AvailabilityInline(admin.StackedInline):
|
||||
model = Availability
|
||||
form = AvailabilityAdminForm
|
||||
ordering = ('corporation__name',)
|
||||
|
|
@ -155,7 +155,7 @@ class PeriodAdmin(admin.ModelAdmin):
|
|||
class AvailabilityAdmin(admin.ModelAdmin):
|
||||
list_display = ('corporation', 'period', 'domain')
|
||||
list_filter = ('period',)
|
||||
fields = (('corporation', 'period'), 'domain', 'contact', 'comment')
|
||||
fields = (('corporation', 'period'), 'domain', 'contact', 'priority', 'comment')
|
||||
form = AvailabilityAdminForm
|
||||
|
||||
def formfield_for_foreignkey(self, db_field, request, **kwargs):
|
||||
|
|
|
|||
|
|
@ -218,6 +218,7 @@ class Availability(models.Model):
|
|||
period = models.ForeignKey(Period, verbose_name='Période')
|
||||
domain = models.ForeignKey(Domain, verbose_name='Domaine')
|
||||
contact = models.ForeignKey(CorpContact, null=True, blank=True, verbose_name='Contact institution')
|
||||
priority = models.BooleanField('Prioritaire', default=False)
|
||||
comment = models.TextField(blank=True, verbose_name='Remarques')
|
||||
|
||||
class Meta:
|
||||
|
|
|
|||
|
|
@ -64,7 +64,9 @@ function update_corporations(period_id) {
|
|||
$.each(data, function() {
|
||||
if (this.free) {
|
||||
options.push(this);
|
||||
sel.append($("<option />").val(this.id).text(this.corp_name).data('idCorp', this.id_corp));
|
||||
var new_opt = $("<option />").val(this.id).text(this.corp_name).data('idCorp', this.id_corp);
|
||||
if (this.priority) new_opt.addClass('priority');
|
||||
sel.append(new_opt);
|
||||
}
|
||||
if ($.inArray(this.domain, domains) < 0) {
|
||||
domains.push(this.domain);
|
||||
|
|
@ -167,7 +169,9 @@ $(document).ready(function() {
|
|||
$.each(options, function(i) {
|
||||
var option = options[i];
|
||||
if (option.domain == filter_val || filter_val == '') {
|
||||
sel.append($("<option />").val(option.id).text(option.corp_name));
|
||||
var new_opt = $("<option />").val(option.id).text(option.corp_name);
|
||||
if (option.priority) new_opt.addClass('priority');
|
||||
sel.append(new_opt);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -179,9 +179,11 @@ def period_students(request, pk):
|
|||
def period_availabilities(request, pk):
|
||||
""" Return all availabilities in the specified period """
|
||||
period = get_object_or_404(Period, pk=pk)
|
||||
# Sorting by the boolean priority is first with PostgreSQL, last with SQLite :-/
|
||||
corps = [{'id': av.id, 'id_corp': av.corporation.id, 'corp_name': av.corporation.name,
|
||||
'domain': av.domain.name, 'free': av.free}
|
||||
for av in period.availability_set.select_related('corporation').all()]
|
||||
'domain': av.domain.name, 'free': av.free, 'priority': av.priority}
|
||||
for av in period.availability_set.select_related('corporation').all(
|
||||
).order_by('priority', 'corporation__name')]
|
||||
return HttpResponse(json.dumps(corps), content_type="application/json")
|
||||
|
||||
def new_training(request):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue