mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2025-05-02 16:51:32 +00:00
On n'affiche pas les données de l'équipe observatrice quand on a pas
This commit is contained in:
parent
7ad7659d78
commit
ab459ecc17
@ -1,7 +1,9 @@
|
|||||||
# Copyright (C) 2020 by Animath
|
# Copyright (C) 2020 by Animath
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from django.http import HttpRequest
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from .models import Note, Participation, Passage, Pool, Solution, Team, Tournament, Tweak, WrittenReview
|
from .models import Note, Participation, Passage, Pool, Solution, Team, Tournament, Tweak, WrittenReview
|
||||||
@ -51,9 +53,14 @@ class PassageInline(admin.TabularInline):
|
|||||||
model = Passage
|
model = Passage
|
||||||
extra = 0
|
extra = 0
|
||||||
ordering = ('position',)
|
ordering = ('position',)
|
||||||
autocomplete_fields = ('reporter', 'opponent', 'reviewer', 'observer',)
|
|
||||||
show_change_link = True
|
show_change_link = True
|
||||||
|
|
||||||
|
def get_autocomplete_fields(self, request: HttpRequest) -> tuple[str]:
|
||||||
|
fields = ('reporter', 'opponent', 'reviewer',)
|
||||||
|
if settings.HAS_OBSERVER:
|
||||||
|
fields += ('observer',)
|
||||||
|
return fields
|
||||||
|
|
||||||
|
|
||||||
class NoteInline(admin.TabularInline):
|
class NoteInline(admin.TabularInline):
|
||||||
model = Note
|
model = Note
|
||||||
@ -113,12 +120,9 @@ class PoolAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
@admin.register(Passage)
|
@admin.register(Passage)
|
||||||
class PassageAdmin(admin.ModelAdmin):
|
class PassageAdmin(admin.ModelAdmin):
|
||||||
list_display = ('__str__', 'reporter_trigram', 'solution_number', 'opponent_trigram', 'reviewer_trigram',
|
|
||||||
'observer_trigram', 'pool_abbr', 'position', 'tournament')
|
|
||||||
list_filter = ('pool__tournament', 'pool__round', 'pool__letter', 'solution_number',)
|
list_filter = ('pool__tournament', 'pool__round', 'pool__letter', 'solution_number',)
|
||||||
search_fields = ('pool__participations__team__name', 'pool__participations__team__trigram',)
|
search_fields = ('pool__participations__team__name', 'pool__participations__team__trigram',)
|
||||||
ordering = ('pool__tournament', 'pool__round', 'pool__letter', 'position',)
|
ordering = ('pool__tournament', 'pool__round', 'pool__letter', 'position',)
|
||||||
autocomplete_fields = ('pool', 'reporter', 'opponent', 'reviewer', 'observer',)
|
|
||||||
inlines = (NoteInline,)
|
inlines = (NoteInline,)
|
||||||
|
|
||||||
@admin.display(description=_("reporter"), ordering='reporter__team__trigram')
|
@admin.display(description=_("reporter"), ordering='reporter__team__trigram')
|
||||||
@ -135,7 +139,7 @@ class PassageAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
@admin.display(description=_("observer"), ordering='observer__team__trigram')
|
@admin.display(description=_("observer"), ordering='observer__team__trigram')
|
||||||
def observer_trigram(self, record: Passage):
|
def observer_trigram(self, record: Passage):
|
||||||
return record.observer.team.trigram
|
return record.observer.team.trigram if record.observer else None
|
||||||
|
|
||||||
@admin.display(description=_("pool"), ordering='pool__letter')
|
@admin.display(description=_("pool"), ordering='pool__letter')
|
||||||
def pool_abbr(self, record):
|
def pool_abbr(self, record):
|
||||||
@ -145,15 +149,23 @@ class PassageAdmin(admin.ModelAdmin):
|
|||||||
def tournament(self, record: Passage):
|
def tournament(self, record: Passage):
|
||||||
return record.pool.tournament
|
return record.pool.tournament
|
||||||
|
|
||||||
|
def get_list_display(self, request: HttpRequest) -> tuple[str]:
|
||||||
|
if settings.HAS_OBSERVER:
|
||||||
|
return ('__str__', 'reporter_trigram', 'solution_number', 'opponent_trigram',
|
||||||
|
'reviewer_trigram', 'observer_trigram', 'pool_abbr', 'position', 'tournament')
|
||||||
|
else:
|
||||||
|
return ('__str__', 'reporter_trigram', 'solution_number', 'opponent_trigram',
|
||||||
|
'reviewer_trigram', 'pool_abbr', 'position', 'tournament')
|
||||||
|
|
||||||
|
def get_autocomplete_fields(self, request: HttpRequest) -> tuple[str]:
|
||||||
|
fields = ('pool', 'reporter', 'opponent', 'reviewer',)
|
||||||
|
if settings.HAS_OBSERVER:
|
||||||
|
fields += ('observer',)
|
||||||
|
return fields
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Note)
|
@admin.register(Note)
|
||||||
class NoteAdmin(admin.ModelAdmin):
|
class NoteAdmin(admin.ModelAdmin):
|
||||||
list_display = ('passage', 'pool', 'jury', 'reporter_writing', 'reporter_oral',
|
|
||||||
'opponent_writing', 'opponent_oral', 'reviewer_writing', 'reviewer_oral',
|
|
||||||
'observer_writing', 'observer_oral',)
|
|
||||||
list_filter = ('passage__pool__letter', 'passage__solution_number', 'jury',
|
|
||||||
'reporter_writing', 'reporter_oral', 'opponent_writing', 'opponent_oral',
|
|
||||||
'reviewer_writing', 'reviewer_oral', 'observer_writing', 'observer_oral')
|
|
||||||
search_fields = ('jury__user__last_name', 'jury__user__first_name', 'passage__reporter__team__trigram',)
|
search_fields = ('jury__user__last_name', 'jury__user__first_name', 'passage__reporter__team__trigram',)
|
||||||
autocomplete_fields = ('jury', 'passage',)
|
autocomplete_fields = ('jury', 'passage',)
|
||||||
|
|
||||||
@ -161,6 +173,21 @@ class NoteAdmin(admin.ModelAdmin):
|
|||||||
def pool(self, record):
|
def pool(self, record):
|
||||||
return record.passage.pool.short_name
|
return record.passage.pool.short_name
|
||||||
|
|
||||||
|
def get_list_display(self, request: HttpRequest) -> tuple[str]:
|
||||||
|
fields = ('passage', 'pool', 'jury', 'reporter_writing', 'reporter_oral',
|
||||||
|
'opponent_writing', 'opponent_oral', 'reviewer_writing', 'reviewer_oral',)
|
||||||
|
if settings.HAS_OBSERVER:
|
||||||
|
fields += ('observer_writing', 'observer_oral',)
|
||||||
|
return fields
|
||||||
|
|
||||||
|
def get_list_filter(self, request: HttpRequest) -> tuple[str]:
|
||||||
|
fields = ('passage__pool__letter', 'passage__solution_number', 'jury',
|
||||||
|
'reporter_writing', 'reporter_oral', 'opponent_writing', 'opponent_oral',
|
||||||
|
'reviewer_writing', 'reviewer_oral',)
|
||||||
|
if settings.HAS_OBSERVER:
|
||||||
|
fields += ('observer_writing', 'observer_oral',)
|
||||||
|
return fields
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Solution)
|
@admin.register(Solution)
|
||||||
class SolutionAdmin(admin.ModelAdmin):
|
class SolutionAdmin(admin.ModelAdmin):
|
||||||
|
@ -7,6 +7,7 @@ import re
|
|||||||
from crispy_forms.helper import FormHelper
|
from crispy_forms.helper import FormHelper
|
||||||
from crispy_forms.layout import Div, Field, HTML, Layout, Submit
|
from crispy_forms.layout import Div, Field, HTML, Layout, Submit
|
||||||
from django import forms
|
from django import forms
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.core.validators import FileExtensionValidator
|
from django.core.validators import FileExtensionValidator
|
||||||
@ -14,7 +15,6 @@ from django.utils.translation import gettext_lazy as _
|
|||||||
import pandas
|
import pandas
|
||||||
from pypdf import PdfReader
|
from pypdf import PdfReader
|
||||||
from registration.models import VolunteerRegistration
|
from registration.models import VolunteerRegistration
|
||||||
from tfjm import settings
|
|
||||||
|
|
||||||
from .models import Note, Participation, Passage, Pool, Solution, Team, Tournament, WrittenReview
|
from .models import Note, Participation, Passage, Pool, Solution, Team, Tournament, WrittenReview
|
||||||
|
|
||||||
@ -405,6 +405,12 @@ class WrittenReviewForm(forms.ModelForm):
|
|||||||
|
|
||||||
|
|
||||||
class NoteForm(forms.ModelForm):
|
class NoteForm(forms.ModelForm):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
if not settings.HAS_OBSERVER:
|
||||||
|
del self.fields['observer_writing']
|
||||||
|
del self.fields['observer_oral']
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Note
|
model = Note
|
||||||
fields = ('reporter_writing', 'reporter_oral', 'opponent_writing',
|
fields = ('reporter_writing', 'reporter_oral', 'opponent_writing',
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# Copyright (C) 2020 by Animath
|
# Copyright (C) 2020 by Animath
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.utils import formats
|
from django.utils import formats
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.utils.text import format_lazy
|
from django.utils.text import format_lazy
|
||||||
@ -106,7 +107,10 @@ class PoolTable(tables.Table):
|
|||||||
|
|
||||||
|
|
||||||
class PassageTable(tables.Table):
|
class PassageTable(tables.Table):
|
||||||
# FIXME Ne pas afficher l'équipe observatrice si non nécessaire
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
if not settings.HAS_OBSERVER:
|
||||||
|
del self.columns['observer']
|
||||||
|
|
||||||
reporter = tables.LinkColumn(
|
reporter = tables.LinkColumn(
|
||||||
"participation:passage_detail",
|
"participation:passage_detail",
|
||||||
@ -135,6 +139,12 @@ class PassageTable(tables.Table):
|
|||||||
|
|
||||||
|
|
||||||
class NoteTable(tables.Table):
|
class NoteTable(tables.Table):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
if not settings.HAS_OBSERVER:
|
||||||
|
del self.columns['observer_writing']
|
||||||
|
del self.columns['observer_oral']
|
||||||
|
|
||||||
jury = tables.Column(
|
jury = tables.Column(
|
||||||
attrs={
|
attrs={
|
||||||
"td": {
|
"td": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user