From 201513d1c964ac7fe43ef77853e8201aaab612ea Mon Sep 17 00:00:00 2001 From: Nico Vermaas <vermaas@astron.nl> Date: Mon, 3 Aug 2020 13:55:33 +0200 Subject: [PATCH] fix admin app failure since splitting up databases. Added a MultiDBModelAdmin to admin.py for that. --- esap/esap/esap_config.sqlite3 | Bin 278528 -> 278528 bytes esap/ida/admin.py | 28 +++++++++++++++- esap/ida/api/urls.py | 1 - esap/logs/esap.log | 61 ++++++++++++++++++++++++++++++++++ esap/query/admin.py | 25 ++++++++++++++ esap/rucio/admin.py | 3 -- esap/staging/admin.py | 29 ++++++++++++++++ esap/staging/api/urls.py | 2 +- 8 files changed, 143 insertions(+), 6 deletions(-) delete mode 100644 esap/rucio/admin.py diff --git a/esap/esap/esap_config.sqlite3 b/esap/esap/esap_config.sqlite3 index a7f75dd9b867cdc233ff9fedfdc206c6142a5257..36de43ffb45786ba2f3edc92b953dd7c6fb1a8d0 100644 GIT binary patch delta 365 zcmZo@5Nv1=oFL5@Gf~EwF=k`Jl6+<nUfId)1qz(9yubN9__pxf+^neZmPb{E*_W|6 zsWhoH(=aV5yEMrt&9orZ+`uBy(m1QYASJ7)+{j#fvs0~uqKJjAfw6+2ft8V^m64gA zk%gt1x%uRC^NpHM%-eoq9-~blvk33h>FggE)tPvwZdO!C<&~FXc4Ra%Ff!0Ju+TL$ zM`$)SFg7zV5^vw~mvQ@+zf1u}A{;Ci82AqHw(z)dp5o|Xxxntn&9PZgVF%0h3nt9> z7?~Itrf)D~R#dMRXZ3AlbtL5E$<Gp;L{RNCGB-A}Fxu{C&b*6Ry~$df)whM9Ih#Lb VGBcu?195x1n+@}JHyf5+%m8%GYV!a9 delta 335 zcmZo@5Nv1=oFL5@IZ?)$F>+(Vl6+=iUZ=_I1q$rH`91iy@ZH?3s35|-*{Rk+QN&!= z$Uwo+*viDn%D_O+(9F!p++gy#`9{qr=50SQkI^QOS(tarboLL7>YEi6+IZWy{AJv} z<u6l!kq|q}1qQxDye&L#oToT?ST3;pZB|s+#j^c^3G+QhCT@=D8_bv$S#wiMi_ND0 zFk!CP?q|-ti@BbGfzi&lh1Id#GS4I}Hzhx}&?G6pBsaCJ%E-JpvoNtRxwNE7T$t6j z+14?w%s8<yHPJ9Xzsl0QB+E1_-=M58IU^-6Ejh`gxUkr-D%8j~+$+m3E7>T@-7Ux8 z-POp~#Vgl0+|$6{#nZ^wDAL3)E4{)uB)c*)#JAkvC7Zd*FJ!u&Df4_;4+C2x10w@n j19M#?3k3snD-&}oLkm4a0~2!tgLXF?=Iw4aEW4NiQh{nF diff --git a/esap/ida/admin.py b/esap/ida/admin.py index 9a8f66a9..c389088d 100644 --- a/esap/ida/admin.py +++ b/esap/ida/admin.py @@ -1,4 +1,30 @@ -# Register your models here. from django.contrib import admin from .models import Ida + admin.site.register(Ida) + +class MultiDBModelAdmin(admin.ModelAdmin): + # A handy constant for the name of the alternate database. + using = 'ida' + + def save_model(self, request, obj, form, change): + # Tell Django to save objects to the 'other' database. + obj.save(using=self.using) + + def delete_model(self, request, obj): + # Tell Django to delete objects from the 'other' database + obj.delete(using=self.using) + + def get_queryset(self, request): + # Tell Django to look for objects on the 'other' database. + return super().get_queryset(request).using(self.using) + + def formfield_for_foreignkey(self, db_field, request, **kwargs): + # Tell Django to populate ForeignKey widgets using a query + # on the 'other' database. + return super().formfield_for_foreignkey(db_field, request, using=self.using, **kwargs) + + def formfield_for_manytomany(self, db_field, request, **kwargs): + # Tell Django to populate ManyToMany widgets using a query + # on the 'other' database. + return super().formfield_for_manytomany(db_field, request, using=self.using, **kwargs) \ No newline at end of file diff --git a/esap/ida/api/urls.py b/esap/ida/api/urls.py index 5a3b2aa2..addda9cd 100644 --- a/esap/ida/api/urls.py +++ b/esap/ida/api/urls.py @@ -11,7 +11,6 @@ router.register('ida', IdaViewSet, 'ida') urlpatterns = router.urls urlpatterns = [ - path('admin', admin.site.urls, name='admin-view'), path('', views.IndexView.as_view(), name='index-view'), path('my_ida', views.StagingListViewAPI.as_view(), name='ida-view'), ] diff --git a/esap/logs/esap.log b/esap/logs/esap.log index 3016b639..8019b5fe 100644 --- a/esap/logs/esap.log +++ b/esap/logs/esap.log @@ -3658,3 +3658,64 @@ [2020-07-23 13:38:20,770] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductType=image_and_collection=imaging_and_dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube [2020-07-23 13:38:20,773] run-query: https://alta.astron.nl/altapi/dataproducts?dataProductType=image&collection=imaging&dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube [2020-07-23 13:38:39,565] nr of dataproducts in response: 500 +[2020-08-03 11:03:00,852] ConfigurationView +[2020-08-03 11:03:00,994] ConfigurationView +[2020-08-03 11:03:16,342] ConfigurationView +[2020-08-03 11:03:41,987] query_controller.create_query() +[2020-08-03 11:05:22,300] query_controller.create_query() +[2020-08-03 11:06:48,371] ConfigurationView +[2020-08-03 11:07:03,119] query_controller.create_query() +[2020-08-03 11:07:03,125] ERROR: could not translating key collection 'collection', using it raw. +[2020-08-03 11:07:03,126] construct_query: https://alta.astron.nl/altapi/dataproducts?collection=imaging_and_dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube +[2020-08-03 11:07:03,128] run-query: https://alta.astron.nl/altapi/dataproducts?collection=imaging&dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube +[2020-08-03 11:07:16,077] nr of dataproducts in response: 500 +[2020-08-03 11:07:55,424] ConfigurationView +[2020-08-03 11:08:10,941] query_controller.create_query() +[2020-08-03 11:18:38,921] query_controller.create_query() +[2020-08-03 11:45:42,442] ConfigurationView +[2020-08-03 12:14:44,264] ConfigurationView +[2020-08-03 12:17:10,548] ConfigurationView +[2020-08-03 12:17:10,668] ConfigurationView +[2020-08-03 12:17:22,603] ConfigurationView +[2020-08-03 12:17:22,704] ConfigurationView +[2020-08-03 13:18:44,486] ConfigurationView +[2020-08-03 13:18:59,163] query_controller.create_query() +[2020-08-03 13:18:59,195] run-query: https://vo.astron.nl/__system__/tap/run/tap/sync?lang=ADQL +[2020-08-03 13:19:12,451] query_controller.create_query() +[2020-08-03 13:19:12,481] run-query: https://vo.astron.nl/__system__/tap/run/tap/sync?lang=ADQL +[2020-08-03 13:19:36,790] ConfigurationView +[2020-08-03 13:19:44,692] query_controller.create_query() +[2020-08-03 13:19:44,696] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=uncalibratedVisibility +[2020-08-03 13:19:44,698] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube +[2020-08-03 13:19:44,699] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType=pulsarTimingTimeSeries +[2020-08-03 13:19:44,716] run-query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=uncalibratedVisibility +[2020-08-03 13:19:54,675] nr of dataproducts in response: 398 +[2020-08-03 13:20:09,632] ConfigurationView +[2020-08-03 13:20:17,117] query_controller.create_query() +[2020-08-03 13:20:17,122] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=uncalibratedVisibility +[2020-08-03 13:20:17,124] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube +[2020-08-03 13:20:17,126] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType=pulsarTimingTimeSeries +[2020-08-03 13:20:17,140] run-query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=uncalibratedVisibility +[2020-08-03 13:20:26,303] nr of dataproducts in response: 398 +[2020-08-03 13:21:17,137] query_controller.create_query() +[2020-08-03 13:21:34,765] query_controller.create_query() +[2020-08-03 13:21:34,772] ERROR: could not translating key collection 'collection', using it raw. +[2020-08-03 13:21:34,773] ERROR: could not translating key view_ra 'view_ra', using it raw. +[2020-08-03 13:21:34,773] ERROR: could not translating key view_dec 'view_dec', using it raw. +[2020-08-03 13:21:34,773] ERROR: could not translating key view_fov 'view_fov', using it raw. +[2020-08-03 13:21:34,773] construct_query: https://alta.astron.nl/altapi/dataproducts?collection=imaging_and_view_ra=342.16_and_view_dec=33.94_and_view_fov=1_and_dataProductSubType__in=uncalibratedVisibility +[2020-08-03 13:21:34,776] ERROR: could not translating key collection 'collection', using it raw. +[2020-08-03 13:21:34,776] ERROR: could not translating key view_ra 'view_ra', using it raw. +[2020-08-03 13:21:34,777] ERROR: could not translating key view_dec 'view_dec', using it raw. +[2020-08-03 13:21:34,777] ERROR: could not translating key view_fov 'view_fov', using it raw. +[2020-08-03 13:21:34,777] construct_query: https://alta.astron.nl/altapi/dataproducts?collection=imaging_and_view_ra=342.16_and_view_dec=33.94_and_view_fov=1_and_dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube +[2020-08-03 13:21:34,781] run-query: https://alta.astron.nl/altapi/dataproducts?collection=imaging&view_ra=342.16&view_dec=33.94&view_fov=1&dataProductSubType__in=uncalibratedVisibility +[2020-08-03 13:21:35,505] nr of dataproducts in response: 5 +[2020-08-03 13:21:35,507] run-query: https://alta.astron.nl/altapi/dataproducts?collection=imaging&view_ra=342.16&view_dec=33.94&view_fov=1&dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube +[2020-08-03 13:21:39,610] nr of dataproducts in response: 143 +[2020-08-03 13:21:56,501] query_controller.create_query() +[2020-08-03 13:21:56,505] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=uncalibratedVisibility +[2020-08-03 13:21:56,507] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=calibratedVisibility,continuumMF,continuumChunk,imageCube,beamCube,polarisationImage,polarisationCube,continuumCube +[2020-08-03 13:21:56,509] construct_query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType=pulsarTimingTimeSeries +[2020-08-03 13:21:56,525] run-query: https://alta.astron.nl/altapi/dataproducts?dataProductSubType__in=uncalibratedVisibility +[2020-08-03 13:22:05,933] nr of dataproducts in response: 398 diff --git a/esap/query/admin.py b/esap/query/admin.py index a3b4fc94..235dead7 100644 --- a/esap/query/admin.py +++ b/esap/query/admin.py @@ -9,3 +9,28 @@ admin.site.register(Catalog) admin.site.register(ParameterMapping) +class MultiDBModelAdmin(admin.ModelAdmin): + # A handy constant for the name of the alternate database. + using = 'default' + + def save_model(self, request, obj, form, change): + # Tell Django to save objects to the 'other' database. + obj.save(using=self.using) + + def delete_model(self, request, obj): + # Tell Django to delete objects from the 'other' database + obj.delete(using=self.using) + + def get_queryset(self, request): + # Tell Django to look for objects on the 'other' database. + return super().get_queryset(request).using(self.using) + + def formfield_for_foreignkey(self, db_field, request, **kwargs): + # Tell Django to populate ForeignKey widgets using a query + # on the 'other' database. + return super().formfield_for_foreignkey(db_field, request, using=self.using, **kwargs) + + def formfield_for_manytomany(self, db_field, request, **kwargs): + # Tell Django to populate ManyToMany widgets using a query + # on the 'other' database. + return super().formfield_for_manytomany(db_field, request, using=self.using, **kwargs) \ No newline at end of file diff --git a/esap/rucio/admin.py b/esap/rucio/admin.py deleted file mode 100644 index 8c38f3f3..00000000 --- a/esap/rucio/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/esap/staging/admin.py b/esap/staging/admin.py index cc347e97..0e4f109a 100644 --- a/esap/staging/admin.py +++ b/esap/staging/admin.py @@ -1,3 +1,32 @@ from django.contrib import admin from .models import Staging + admin.site.register(Staging) + + + +class MultiDBModelAdmin(admin.ModelAdmin): + # A handy constant for the name of the alternate database. + using = 'staging' + + def save_model(self, request, obj, form, change): + # Tell Django to save objects to the 'other' database. + obj.save(using=self.using) + + def delete_model(self, request, obj): + # Tell Django to delete objects from the 'other' database + obj.delete(using=self.using) + + def get_queryset(self, request): + # Tell Django to look for objects on the 'other' database. + return super().get_queryset(request).using(self.using) + + def formfield_for_foreignkey(self, db_field, request, **kwargs): + # Tell Django to populate ForeignKey widgets using a query + # on the 'other' database. + return super().formfield_for_foreignkey(db_field, request, using=self.using, **kwargs) + + def formfield_for_manytomany(self, db_field, request, **kwargs): + # Tell Django to populate ManyToMany widgets using a query + # on the 'other' database. + return super().formfield_for_manytomany(db_field, request, using=self.using, **kwargs) \ No newline at end of file diff --git a/esap/staging/api/urls.py b/esap/staging/api/urls.py index de773bde..8b03957d 100644 --- a/esap/staging/api/urls.py +++ b/esap/staging/api/urls.py @@ -11,7 +11,7 @@ router.register('staging', StagingViewSet, 'staging') urlpatterns = router.urls urlpatterns = [ - path('admin', admin.site.urls, name='admin-view'), + # path('admin', admin.site.urls, name='admin-view'), path('', views.IndexView.as_view(), name='index-view'), path('staging', views.StagingListViewAPI.as_view(), name='staging-view'), ] -- GitLab