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)