Source code for nlpmed_portal.nlp.admin
# SPDX-FileCopyrightText: Copyright (C) 2026 Omid Jafari <omidjafari.com>
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import nested_admin
from django.contrib import admin
from simple_history.admin import SimpleHistoryAdmin
from nlpmed_portal.nlp.forms import DuplicateCheckerForm
from nlpmed_portal.nlp.forms import EncodingFixerForm
from nlpmed_portal.nlp.forms import JoinerForm
from nlpmed_portal.nlp.forms import MLInferenceForm
from nlpmed_portal.nlp.forms import NoteFilterForm
from nlpmed_portal.nlp.forms import PatternReplacerForm
from nlpmed_portal.nlp.forms import SectionFilterForm
from nlpmed_portal.nlp.forms import SectionSplitterForm
from nlpmed_portal.nlp.forms import SentenceExpanderForm
from nlpmed_portal.nlp.forms import SentenceFilterForm
from nlpmed_portal.nlp.forms import SentenceSegmenterForm
from nlpmed_portal.nlp.forms import WordMaskerForm
from nlpmed_portal.nlp.models import DuplicateChecker
from nlpmed_portal.nlp.models import EncodingFixer
from nlpmed_portal.nlp.models import Joiner
from nlpmed_portal.nlp.models import MLInference
from nlpmed_portal.nlp.models import NlpProcessJob
from nlpmed_portal.nlp.models import NLPSetting
from nlpmed_portal.nlp.models import NoteFilter
from nlpmed_portal.nlp.models import PatternReplacer
from nlpmed_portal.nlp.models import SectionFilter
from nlpmed_portal.nlp.models import SectionSplitter
from nlpmed_portal.nlp.models import SentenceExpander
from nlpmed_portal.nlp.models import SentenceFilter
from nlpmed_portal.nlp.models import SentenceSegmenter
from nlpmed_portal.nlp.models import WordMasker
[docs]
class EncodingFixerInline(nested_admin.NestedTabularInline):
model = EncodingFixer
form = EncodingFixerForm
extra = 1
[docs]
class PatternReplacerInline(nested_admin.NestedTabularInline):
model = PatternReplacer
form = PatternReplacerForm
extra = 1
[docs]
class WordMaskerInline(nested_admin.NestedTabularInline):
model = WordMasker
form = WordMaskerForm
extra = 1
[docs]
class NoteFilterInline(nested_admin.NestedTabularInline):
model = NoteFilter
form = NoteFilterForm
extra = 1
[docs]
class SectionSplitterInline(nested_admin.NestedTabularInline):
model = SectionSplitter
form = SectionSplitterForm
extra = 1
[docs]
class SectionFilterInline(nested_admin.NestedTabularInline):
model = SectionFilter
form = SectionFilterForm
extra = 1
[docs]
class SentenceSegmenterInline(nested_admin.NestedTabularInline):
model = SentenceSegmenter
form = SentenceSegmenterForm
extra = 1
[docs]
class DuplicateCheckerInline(nested_admin.NestedTabularInline):
model = DuplicateChecker
form = DuplicateCheckerForm
extra = 1
[docs]
class SentenceFilterInline(nested_admin.NestedTabularInline):
model = SentenceFilter
form = SentenceFilterForm
extra = 1
[docs]
class SentenceExpanderInline(nested_admin.NestedTabularInline):
model = SentenceExpander
form = SentenceExpanderForm
extra = 1
[docs]
class JoinerInline(nested_admin.NestedTabularInline):
model = Joiner
form = JoinerForm
extra = 1
[docs]
class MLInferenceInline(nested_admin.NestedTabularInline):
model = MLInference
form = MLInferenceForm
extra = 1
[docs]
class NLPSettingInline(nested_admin.NestedTabularInline):
model = NLPSetting
extra = 1
inlines = [
EncodingFixerInline,
PatternReplacerInline,
WordMaskerInline,
NoteFilterInline,
SectionSplitterInline,
SectionFilterInline,
SentenceSegmenterInline,
DuplicateCheckerInline,
SentenceFilterInline,
SentenceExpanderInline,
JoinerInline,
MLInferenceInline,
]
[docs]
@admin.register(NLPSetting)
class NLPSettingAdmin(nested_admin.NestedModelAdmin):
inlines = [
EncodingFixerInline,
PatternReplacerInline,
WordMaskerInline,
NoteFilterInline,
SectionSplitterInline,
SectionFilterInline,
SentenceSegmenterInline,
DuplicateCheckerInline,
SentenceFilterInline,
SentenceExpanderInline,
JoinerInline,
MLInferenceInline,
]
admin.site.register(NlpProcessJob, SimpleHistoryAdmin)
admin.site.register(EncodingFixer, SimpleHistoryAdmin)
admin.site.register(PatternReplacer, SimpleHistoryAdmin)
admin.site.register(WordMasker, SimpleHistoryAdmin)
admin.site.register(NoteFilter, SimpleHistoryAdmin)
admin.site.register(SectionSplitter, SimpleHistoryAdmin)
admin.site.register(SectionFilter, SimpleHistoryAdmin)
admin.site.register(SentenceSegmenter, SimpleHistoryAdmin)
admin.site.register(DuplicateChecker, SimpleHistoryAdmin)
admin.site.register(SentenceFilter, SimpleHistoryAdmin)
admin.site.register(SentenceExpander, SimpleHistoryAdmin)
admin.site.register(Joiner, SimpleHistoryAdmin)
admin.site.register(MLInference, SimpleHistoryAdmin)