Skip to content

Commit

Permalink
Fix #795, #796
Browse files Browse the repository at this point in the history
  • Loading branch information
mpasternak committed Feb 23, 2020
1 parent ae15b56 commit f91eebb
Show file tree
Hide file tree
Showing 7 changed files with 257 additions and 80 deletions.
2 changes: 2 additions & 0 deletions HISTORY.rst
Expand Up @@ -10,6 +10,8 @@ Historia zmian
* umożliwiaj oddzielne zarządzanie widocznością raportu slotów zerowych (#785)
* nie dodawaj pola 103 do konferencji przy imporcie DBF (#794)
* akceptuj podwójnych autorów przy imporcie DBF (#792)
* poprawnie rozpoznawaj formę główną autora (#806)
* poprawnie importuj z plików DBF numery stron i pola szczegółów (#795, #796)

202002.17
---------
Expand Down
4 changes: 2 additions & 2 deletions src/bpp/management/commands/przypisz_dyscypliny.py
Expand Up @@ -33,7 +33,7 @@ def handle(self, verbosity, *args, **options):
if verbosity > 1:
logger.setLevel(logging.DEBUG)

logger.info("ID autora\tAutor\tRok\tDyscyplina\tTytul pracy\tID pracy")
logger.debug("ID autora\tAutor\tRok\tDyscyplina\tTytul pracy\tID pracy")
query = Autor_Dyscyplina.objects.all().exclude(dyscyplina_naukowa=None)

if not options["ustawiaj_pierwsza_gdy_dwie"]:
Expand All @@ -47,7 +47,7 @@ def handle(self, verbosity, *args, **options):
for instance in klass.objects.filter(
autor=ad.autor, rekord__rok=ad.rok, dyscyplina_naukowa=None
):
logger.info(
logger.debug(
f"{ad.autor.pk}\t{ad.autor}\t{ad.rok}\t"
f"{ad.dyscyplina_naukowa}\t{instance.rekord.tytul_oryginalny}"
f"\t{instance.rekord.pk}"
Expand Down
6 changes: 3 additions & 3 deletions src/import_dbf/Makefile
Expand Up @@ -49,7 +49,7 @@ remove-dbfs:
psql -U postgres -d bpp

alter-schema:
cat sql/alter-schema.sql | $(PSQL)
cat sql/alter-schema.sql | $(PSQL_VERBOSE)
cat sql/translate-title.sql | $(PSQL)
cat sql/translate-autor.sql | $(PSQL)
cat sql/translate-poz.sql | $(PSQL)
Expand All @@ -61,10 +61,10 @@ delete-imported-data:
cat sql/remove-imported.sql | $(PSQL)

disable-trigger:
cat sql/disable-trigger.sql | $(PSQL)
cat sql/disable-trigger.sql | $(PSQL_VERBOSE)

enable-trigger:
cat sql/enable-trigger.sql | $(PSQL)
cat sql/enable-trigger.sql | $(PSQL_VERBOSE)


create-schema:
Expand Down
176 changes: 117 additions & 59 deletions src/import_dbf/admin.py
Expand Up @@ -2,8 +2,28 @@
from django.contrib.admin.sites import AlreadyRegistered

from import_dbf import models as import_dbf_models
from import_dbf.models import Bib, Aut, Jed, B_A, B_U, Poz, Usi, Ses, Wx2, Ixn, Wyd, Ldy, B_E, Lis, B_L, J_H, Pub, Kbn, \
Jez, Loc
from import_dbf.models import (
Bib,
Aut,
Jed,
B_A,
B_U,
Poz,
Usi,
Ses,
Wx2,
Ixn,
Wyd,
Ldy,
B_E,
Lis,
B_L,
J_H,
Pub,
Kbn,
Jez,
Loc,
)


class ImportDbfBaseAdmin(admin.ModelAdmin):
Expand All @@ -13,11 +33,13 @@ def has_add_permission(self, request):
def has_delete_permission(self, request, obj=None):
return False

def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
def changeform_view(self, request, object_id=None, form_url="", extra_context=None):
extra_context = extra_context or {}
extra_context['show_save_and_continue'] = False
extra_context['show_save'] = False
return super(ImportDbfBaseAdmin, self).changeform_view(request, object_id, extra_context=extra_context)
extra_context["show_save_and_continue"] = False
extra_context["show_save"] = False
return super(ImportDbfBaseAdmin, self).changeform_view(
request, object_id, extra_context=extra_context
)


class PozInline(admin.TabularInline):
Expand All @@ -28,32 +50,53 @@ class PozInline(admin.TabularInline):
class B_AInline(admin.TabularInline):
model = B_A
extra = 0
autocomplete_fields = ['idt_aut', 'idt_jed']
fields = ['lp', 'idt_aut', 'idt_jed', 'afiliacja']
autocomplete_fields = ["idt_aut", "idt_jed"]
fields = ["lp", "idt_aut", "idt_jed", "afiliacja"]


class B_UInline(admin.TabularInline):
model = B_U
extra = 0


@admin.register(Bib)
class BibAdmin(ImportDbfBaseAdmin):
list_display = ['idt', 'tytul_or', 'title', 'zrodlo', 'szczegoly', 'uwagi']
search_fields = ['tytul_or', 'title', 'zrodlo', 'szczegoly', 'uwagi', "zrodlo_s"]
list_filter = ['kbr', 'lf', 'study_gr', 'kwartyl']
readonly_fields = ['object_id', 'content_type']
list_display = ["idt", "tytul_or", "title", "zrodlo", "szczegoly", "uwagi"]
search_fields = ["tytul_or", "title", "zrodlo", "szczegoly", "uwagi", "zrodlo_s"]
list_filter = ["kbr", "lf", "study_gr", "kwartyl"]
readonly_fields = ["object_id", "content_type"]

inlines = [B_AInline, PozInline, B_UInline]


@admin.register(Aut)
class AutAdmin(ImportDbfBaseAdmin):
list_display = ['idt_aut', 'nazwisko', 'imiona', 'tytul', 'pokaz_exp_id', 'pokaz_ref', 'orcid_id', 'stanowisko', 'prac_od', 'dat_zwol',
'kad_nr', 'idt_jed', 'tel', 'email', 'fg', 'pbn_id', 'bpp_autor', 'bpp_autor_id']
search_fields = ['nazwisko', 'imiona', 'ref', 'tel', 'email']
autocomplete_fields = ['idt_jed', 'ref', 'exp_id']
list_filter = ['fg', 'tytul']
readonly_fields = ['bpp_autor', ]
list_display = [
"idt_aut",
"nazwisko",
"imiona",
"tytul",
"pokaz_exp_id",
"pokaz_ref",
"orcid_id",
"stanowisko",
"prac_od",
"dat_zwol",
"kad_nr",
"idt_jed",
"tel",
"email",
"fg",
"pbn_id",
"bpp_autor",
"bpp_autor_id",
]
search_fields = ["nazwisko", "imiona", "tel", "email"]
autocomplete_fields = ["idt_jed", "ref", "exp_id"]
list_filter = ["fg", "tytul"]
readonly_fields = [
"bpp_autor",
]

def pokaz_exp_id(self, obj):
if obj.exp_id is None:
Expand All @@ -68,123 +111,138 @@ def pokaz_ref(self, obj):

@admin.register(Kbn)
class KbnAdmin(ImportDbfBaseAdmin):
list_display = ['idt_kbn', 'nazwa', 'skrot', 'to_print', 'to_print2', 'to_print3']
list_filter = ['to_print', 'to_print2']
readonly_fields = ['bpp_id']
list_display = ["idt_kbn", "nazwa", "skrot", "to_print", "to_print2", "to_print3"]
list_filter = ["to_print", "to_print2"]
readonly_fields = ["bpp_id"]


@admin.register(Jez)
class JezAdmin(ImportDbfBaseAdmin):
list_display = ['nazwa', 'skrot', ]
readonly_fields = ['bpp_id']
list_display = [
"nazwa",
"skrot",
]
readonly_fields = ["bpp_id"]


@admin.register(Jed)
class JedAdmin(ImportDbfBaseAdmin):
list_display = ['nazwa', 'skrot', 'wyd_skrot', 'email', 'www', 'to_print']
search_fields = ['nazwa', 'skrot']
list_filter = ['to_print', 'wyd_skrot']
readonly_fields = ['bpp_jednostka']
list_display = ["nazwa", "skrot", "wyd_skrot", "email", "www", "to_print"]
search_fields = ["nazwa", "skrot"]
list_filter = ["to_print", "wyd_skrot"]
readonly_fields = ["bpp_jednostka"]


@admin.register(B_A)
class B_AAdmin(ImportDbfBaseAdmin):
list_display = ['idt', 'idt_aut', 'idt_jed', 'lp']
autocomplete_fields = ['idt', 'idt_aut', 'idt_jed']
list_display = ["idt", "idt_aut", "idt_jed", "lp"]
autocomplete_fields = ["idt", "idt_aut", "idt_jed"]
# list_select_related = ['idt', 'idt_aut', 'idt_jed']
search_fields = ['idt', 'idt__tytul_or']
list_filter = ['afiliacja', 'tytul', 'stanowisko']
search_fields = ["idt", "idt__tytul_or"]
list_filter = ["afiliacja", "tytul", "stanowisko"]


@admin.register(Poz)
class PozAdmin(ImportDbfBaseAdmin):
list_display = ['idt', 'kod_opisu', 'lp', 'tresc']
search_fields = ['idt__tytul_or', 'tresc']
autocomplete_fields = ['idt']
list_select_related = ['idt']
list_filter = ['kod_opisu']
list_display = ["idt", "kod_opisu", "lp", "tresc"]
search_fields = ["idt__tytul_or", "tresc"]
autocomplete_fields = ["idt"]
list_select_related = ["idt"]
list_filter = ["kod_opisu"]


@admin.register(B_U)
class BUAdmin(ImportDbfBaseAdmin):
list_display = ['idt', 'idt_usi', 'comm']
autocomplete_fields = ['idt_usi', 'idt']
search_fields = [ 'idt__tytul_or', 'idt__pk']
list_display = ["idt", "idt_usi", "comm"]
autocomplete_fields = ["idt_usi", "idt"]
search_fields = ["idt__tytul_or", "idt__pk"]


@admin.register(Usi)
class UsiAdmin(ImportDbfBaseAdmin):
list_display = ['idt_usi', 'usm_f', 'usm_sf', 'skrot', 'nazwa']
search_fields = ['idt_usi', 'skrot', 'nazwa']
list_filter = ['usm_f', 'usm_sf']
autocomplete_fields = ['bpp_id']
list_display = ["idt_usi", "usm_f", "usm_sf", "skrot", "nazwa"]
search_fields = ["idt_usi", "skrot", "nazwa"]
list_filter = ["usm_f", "usm_sf"]
autocomplete_fields = ["bpp_id"]


@admin.register(Ses)
class SesAdmin(ImportDbfBaseAdmin):
list_display = ['redaktor', 'file', 'login_t', 'logout_t']
list_display = ["redaktor", "file", "login_t", "logout_t"]


@admin.register(Wx2)
class Wx2Admin(ImportDbfBaseAdmin):
list_display = ['idt_wsx', 'skrot', 'nazwa', 'wsp']
list_display = ["idt_wsx", "skrot", "nazwa", "wsp"]


@admin.register(Ixn)
class IxnAdmin(ImportDbfBaseAdmin):
list_display = ['idt_pbn', 'pbn']
list_display = ["idt_pbn", "pbn"]


@admin.register(Wyd)
class WydAdmin(ImportDbfBaseAdmin):
list_display = ['skrot', 'nazwa']
list_display = ["skrot", "nazwa"]


@admin.register(Ldy)
class WydAdmin(ImportDbfBaseAdmin):
list_display = ['id', 'dziedzina', 'dyscyplina']
class LdyAdmin(ImportDbfBaseAdmin):
list_display = ["id", "dziedzina", "dyscyplina"]


@admin.register(B_E)
class B_EAdmin(ImportDbfBaseAdmin):
list_display = ['idt', 'lp', 'idt_eng']
list_display = ["idt", "lp", "idt_eng"]


@admin.register(Lis)
class LisAdmin(ImportDbfBaseAdmin):
list_display = ['rok', 'kategoria', 'numer', 'tytul', 'issn', 'punkty', 'sobowtor', 'errissn', 'dblissn',
'dbltitul']
list_filter = ['rok', 'kategoria', 'punkty']
search_fields = ['rok', 'kategoria', 'numer', 'tytul', 'issn']
list_display = [
"rok",
"kategoria",
"numer",
"tytul",
"issn",
"punkty",
"sobowtor",
"errissn",
"dblissn",
"dbltitul",
]
list_filter = ["rok", "kategoria", "punkty"]
search_fields = ["rok", "kategoria", "numer", "tytul", "issn"]


@admin.register(B_L)
class B_LAdmin(ImportDbfBaseAdmin):
list_display = ['idt', 'idt_l']
list_display = ["idt", "idt_l"]


@admin.register(J_H)
class J_HAdmin(ImportDbfBaseAdmin):
list_display = ['idt_jed_f', 'idt_jed_t', 'rok']
list_display = ["idt_jed_f", "idt_jed_t", "rok"]


@admin.register(Pub)
class PubAdmin(ImportDbfBaseAdmin):
list_display = ['idt_pub', 'skrot', 'nazwa', 'to_print']
readonly_fields = ['bpp_id']
list_display = ["idt_pub", "skrot", "nazwa", "to_print"]
readonly_fields = ["bpp_id"]


@admin.register(Loc)
class LocAdmin(ImportDbfBaseAdmin):
list_display = ['ident', 'ext']
list_display = ["ident", "ext"]


for elem in import_dbf_models.__all__:
klass = getattr(import_dbf_models, elem)

try:

@admin.register(klass)
class KlassAdmin(ImportDbfBaseAdmin):
pass

except AlreadyRegistered:
pass

0 comments on commit f91eebb

Please sign in to comment.