1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-17 10:22:36 +00:00
bramw_baserow/backend/src/baserow/contrib/database/apps.py
2025-01-21 21:20:44 +00:00

990 lines
47 KiB
Python
Executable file

from django.apps import AppConfig
from django.conf import settings
from django.core.exceptions import FieldDoesNotExist
from django.db import ProgrammingError
from django.db.models.signals import post_migrate, pre_migrate
from baserow.contrib.database.table.cache import clear_generated_model_cache
from baserow.contrib.database.table.operations import RestoreDatabaseTableOperationType
from baserow.core.registries import (
application_type_registry,
object_scope_type_registry,
operation_type_registry,
plugin_registry,
)
from baserow.core.trash.registries import trash_item_type_registry
from baserow.core.usage.registries import workspace_storage_usage_item_registry
from baserow.ws.registries import page_registry
class DatabaseConfig(AppConfig):
name = "baserow.contrib.database"
def ready(self):
from baserow.core.action.registries import (
action_scope_registry,
action_type_registry,
)
from .action.scopes import TableActionScopeType, ViewActionScopeType
action_scope_registry.register(TableActionScopeType())
action_scope_registry.register(ViewActionScopeType())
from baserow.contrib.database.tokens.actions import (
CreateDbTokenActionType,
DeleteDbTokenActionType,
RotateDbTokenKeyActionType,
UpdateDbTokenNameActionType,
UpdateDbTokenPermissionsActionType,
)
action_type_registry.register(CreateDbTokenActionType())
action_type_registry.register(UpdateDbTokenNameActionType())
action_type_registry.register(UpdateDbTokenPermissionsActionType())
action_type_registry.register(RotateDbTokenKeyActionType())
action_type_registry.register(DeleteDbTokenActionType())
from baserow.contrib.database.webhooks.actions import (
CreateWebhookActionType,
DeleteWebhookActionType,
UpdateWebhookActionType,
)
action_type_registry.register(CreateWebhookActionType())
action_type_registry.register(DeleteWebhookActionType())
action_type_registry.register(UpdateWebhookActionType())
from .export.actions import ExportTableActionType
action_type_registry.register(ExportTableActionType())
from .airtable.actions import ImportDatabaseFromAirtableActionType
action_type_registry.register(ImportDatabaseFromAirtableActionType())
from .table.actions import (
CreateTableActionType,
DeleteTableActionType,
DuplicateTableActionType,
OrderTableActionType,
UpdateTableActionType,
)
action_type_registry.register(CreateTableActionType())
action_type_registry.register(DeleteTableActionType())
action_type_registry.register(OrderTableActionType())
action_type_registry.register(UpdateTableActionType())
action_type_registry.register(DuplicateTableActionType())
from .rows.actions import (
CreateRowActionType,
CreateRowsActionType,
DeleteRowActionType,
DeleteRowsActionType,
ImportRowsActionType,
MoveRowActionType,
UpdateRowActionType,
UpdateRowsActionType,
)
action_type_registry.register(CreateRowActionType())
action_type_registry.register(CreateRowsActionType())
action_type_registry.register(ImportRowsActionType())
action_type_registry.register(DeleteRowActionType())
action_type_registry.register(DeleteRowsActionType())
action_type_registry.register(MoveRowActionType())
action_type_registry.register(UpdateRowActionType())
action_type_registry.register(UpdateRowsActionType())
from baserow.contrib.database.views.actions import (
CreateDecorationActionType,
CreateViewActionType,
CreateViewFilterActionType,
CreateViewFilterGroupActionType,
CreateViewGroupByActionType,
CreateViewSortActionType,
DeleteDecorationActionType,
DeleteViewActionType,
DeleteViewFilterActionType,
DeleteViewFilterGroupActionType,
DeleteViewGroupByActionType,
DeleteViewSortActionType,
DuplicateViewActionType,
OrderViewsActionType,
RotateViewSlugActionType,
SubmitFormActionType,
UpdateDecorationActionType,
UpdateViewActionType,
UpdateViewFieldOptionsActionType,
UpdateViewFilterActionType,
UpdateViewFilterGroupActionType,
UpdateViewGroupByActionType,
UpdateViewSortActionType,
)
action_type_registry.register(CreateViewActionType())
action_type_registry.register(DuplicateViewActionType())
action_type_registry.register(DeleteViewActionType())
action_type_registry.register(OrderViewsActionType())
action_type_registry.register(UpdateViewActionType())
action_type_registry.register(CreateViewFilterActionType())
action_type_registry.register(UpdateViewFilterActionType())
action_type_registry.register(DeleteViewFilterActionType())
action_type_registry.register(CreateViewSortActionType())
action_type_registry.register(UpdateViewSortActionType())
action_type_registry.register(DeleteViewSortActionType())
action_type_registry.register(CreateViewGroupByActionType())
action_type_registry.register(UpdateViewGroupByActionType())
action_type_registry.register(DeleteViewGroupByActionType())
action_type_registry.register(SubmitFormActionType())
action_type_registry.register(RotateViewSlugActionType())
action_type_registry.register(UpdateViewFieldOptionsActionType())
action_type_registry.register(CreateDecorationActionType())
action_type_registry.register(UpdateDecorationActionType())
action_type_registry.register(DeleteDecorationActionType())
action_type_registry.register(CreateViewFilterGroupActionType())
action_type_registry.register(UpdateViewFilterGroupActionType())
action_type_registry.register(DeleteViewFilterGroupActionType())
from baserow.contrib.database.data_sync.actions import (
CreateDataSyncTableActionType,
SyncDataSyncTableActionType,
UpdateDataSyncTableActionType,
)
action_type_registry.register(CreateDataSyncTableActionType())
action_type_registry.register(UpdateDataSyncTableActionType())
action_type_registry.register(SyncDataSyncTableActionType())
from .airtable.registry import airtable_column_type_registry
from .data_sync.registries import data_sync_type_registry
from .export.registries import table_exporter_registry
from .fields.registries import (
field_aggregation_registry,
field_converter_registry,
field_type_registry,
)
from .formula.registries import formula_function_registry
from .plugins import DatabasePlugin
from .views.registries import (
form_view_mode_registry,
view_aggregation_type_registry,
view_filter_type_registry,
view_ownership_type_registry,
view_type_registry,
)
from .webhooks.registries import webhook_event_type_registry
plugin_registry.register(DatabasePlugin())
from .fields.field_types import (
AutonumberFieldType,
BooleanFieldType,
CountFieldType,
CreatedByFieldType,
CreatedOnFieldType,
DateFieldType,
DurationFieldType,
EmailFieldType,
FileFieldType,
FormulaFieldType,
LastModifiedByFieldType,
LastModifiedFieldType,
LinkRowFieldType,
LongTextFieldType,
LookupFieldType,
MultipleCollaboratorsFieldType,
MultipleSelectFieldType,
NumberFieldType,
PasswordFieldType,
PhoneNumberFieldType,
RatingFieldType,
RollupFieldType,
SingleSelectFieldType,
TextFieldType,
URLFieldType,
UUIDFieldType,
)
field_type_registry.register(TextFieldType())
field_type_registry.register(LongTextFieldType())
field_type_registry.register(URLFieldType())
field_type_registry.register(EmailFieldType())
field_type_registry.register(NumberFieldType())
field_type_registry.register(RatingFieldType())
field_type_registry.register(BooleanFieldType())
field_type_registry.register(DateFieldType())
field_type_registry.register(LastModifiedFieldType())
field_type_registry.register(LastModifiedByFieldType())
field_type_registry.register(CreatedOnFieldType())
field_type_registry.register(CreatedByFieldType())
field_type_registry.register(DurationFieldType())
field_type_registry.register(LinkRowFieldType())
field_type_registry.register(FileFieldType())
field_type_registry.register(SingleSelectFieldType())
field_type_registry.register(MultipleSelectFieldType())
field_type_registry.register(PhoneNumberFieldType())
field_type_registry.register(FormulaFieldType())
field_type_registry.register(CountFieldType())
field_type_registry.register(RollupFieldType())
field_type_registry.register(LookupFieldType())
field_type_registry.register(MultipleCollaboratorsFieldType())
field_type_registry.register(UUIDFieldType())
field_type_registry.register(AutonumberFieldType())
field_type_registry.register(PasswordFieldType())
from .fields.field_aggregations import (
AverageFieldAggregationType,
CheckedFieldAggregationType,
CheckedPercentageFieldAggregationType,
CountFieldAggregationType,
EarliestDateFieldAggregationType,
EmptyCountFieldAggregationType,
EmptyPercentageFieldAggregationType,
LatestDateFieldAggregationType,
MaxFieldAggregationType,
MedianFieldAggregationType,
MinFieldAggregationType,
NotCheckedFieldAggregationType,
NotCheckedPercentageFieldAggregationType,
NotEmptyCountFieldAggregationType,
NotEmptyPercentageFieldAggregationType,
StdDevFieldAggregationType,
SumFieldAggregationType,
UniqueCountFieldAggregationType,
VarianceFieldAggregationType,
)
field_aggregation_registry.register(CountFieldAggregationType())
field_aggregation_registry.register(EmptyCountFieldAggregationType())
field_aggregation_registry.register(NotEmptyCountFieldAggregationType())
field_aggregation_registry.register(CheckedFieldAggregationType())
field_aggregation_registry.register(NotCheckedFieldAggregationType())
field_aggregation_registry.register(EmptyPercentageFieldAggregationType())
field_aggregation_registry.register(NotEmptyPercentageFieldAggregationType())
field_aggregation_registry.register(CheckedPercentageFieldAggregationType())
field_aggregation_registry.register(NotCheckedPercentageFieldAggregationType())
field_aggregation_registry.register(UniqueCountFieldAggregationType())
field_aggregation_registry.register(MinFieldAggregationType())
field_aggregation_registry.register(MaxFieldAggregationType())
field_aggregation_registry.register(EarliestDateFieldAggregationType())
field_aggregation_registry.register(LatestDateFieldAggregationType())
field_aggregation_registry.register(SumFieldAggregationType())
field_aggregation_registry.register(AverageFieldAggregationType())
field_aggregation_registry.register(StdDevFieldAggregationType())
field_aggregation_registry.register(VarianceFieldAggregationType())
field_aggregation_registry.register(MedianFieldAggregationType())
from .fields.field_converters import (
AutonumberFieldConverter,
FileFieldConverter,
FormulaFieldConverter,
LinkRowFieldConverter,
MultipleCollaboratorsFieldConverter,
MultipleSelectFieldToSingleSelectFieldConverter,
MultipleSelectFieldToTextFieldConverter,
PasswordFieldConverter,
SingleSelectFieldToMultipleSelectFieldConverter,
TextFieldToMultipleSelectFieldConverter,
)
field_converter_registry.register(MultipleCollaboratorsFieldConverter())
field_converter_registry.register(LinkRowFieldConverter())
field_converter_registry.register(FileFieldConverter())
field_converter_registry.register(TextFieldToMultipleSelectFieldConverter())
field_converter_registry.register(MultipleSelectFieldToTextFieldConverter())
field_converter_registry.register(
MultipleSelectFieldToSingleSelectFieldConverter()
)
field_converter_registry.register(
SingleSelectFieldToMultipleSelectFieldConverter()
)
field_converter_registry.register(FormulaFieldConverter())
field_converter_registry.register(AutonumberFieldConverter())
field_converter_registry.register(PasswordFieldConverter())
from .fields.actions import (
ChangePrimaryFieldActionType,
CreateFieldActionType,
DeleteFieldActionType,
DuplicateFieldActionType,
UpdateFieldActionType,
)
action_type_registry.register(CreateFieldActionType())
action_type_registry.register(DeleteFieldActionType())
action_type_registry.register(UpdateFieldActionType())
action_type_registry.register(DuplicateFieldActionType())
action_type_registry.register(ChangePrimaryFieldActionType())
from .views.view_types import FormViewType, GalleryViewType, GridViewType
view_type_registry.register(GridViewType())
view_type_registry.register(GalleryViewType())
view_type_registry.register(FormViewType())
from .views.view_filters import (
BooleanViewFilterType,
ContainsNotViewFilterType,
ContainsViewFilterType,
ContainsWordViewFilterType,
DateAfterDaysAgoViewFilterType,
DateAfterOrEqualViewFilterType,
DateAfterTodayViewFilterType,
DateAfterViewFilterType,
DateBeforeOrEqualViewFilterType,
DateBeforeTodayViewFilterType,
DateBeforeViewFilterType,
DateEqualsCurrentMonthViewFilterType,
DateEqualsCurrentWeekViewFilterType,
DateEqualsCurrentYearViewFilterType,
DateEqualsDayOfMonthViewFilterType,
DateEqualsDaysAgoViewFilterType,
DateEqualsMonthsAgoViewFilterType,
DateEqualsTodayViewFilterType,
DateEqualsYearsAgoViewFilterType,
DateEqualViewFilterType,
DateIsAfterMultiStepFilterType,
DateIsBeforeMultiStepFilterType,
DateIsEqualMultiStepFilterType,
DateIsNotEqualMultiStepFilterType,
DateIsOnOrAfterMultiStepFilterType,
DateIsOnOrBeforeMultiStepFilterType,
DateIsWithinMultiStepFilterType,
DateIsWithinXDaysViewFilterType,
DateIsWithinXMonthsViewFilterType,
DateIsWithinXWeeksViewFilterType,
DateNotEqualViewFilterType,
DoesntContainWordViewFilterType,
EmptyViewFilterType,
EqualViewFilterType,
FilenameContainsViewFilterType,
FilesLowerThanViewFilterType,
HasFileTypeViewFilterType,
HigherThanOrEqualViewFilterType,
HigherThanViewFilterType,
IsEvenAndWholeViewFilterType,
LengthIsLowerThanViewFilterType,
LinkRowContainsViewFilterType,
LinkRowHasNotViewFilterType,
LinkRowHasViewFilterType,
LinkRowNotContainsViewFilterType,
LowerThanOrEqualViewFilterType,
LowerThanViewFilterType,
MultipleCollaboratorsHasNotViewFilterType,
MultipleCollaboratorsHasViewFilterType,
MultipleSelectHasNotViewFilterType,
MultipleSelectHasViewFilterType,
NotEmptyViewFilterType,
NotEqualViewFilterType,
SingleSelectEqualViewFilterType,
SingleSelectIsAnyOfViewFilterType,
SingleSelectIsNoneOfViewFilterType,
SingleSelectNotEqualViewFilterType,
UserIsNotViewFilterType,
UserIsViewFilterType,
)
view_filter_type_registry.register(EqualViewFilterType())
view_filter_type_registry.register(NotEqualViewFilterType())
view_filter_type_registry.register(FilenameContainsViewFilterType())
view_filter_type_registry.register(FilesLowerThanViewFilterType()),
view_filter_type_registry.register(HasFileTypeViewFilterType())
view_filter_type_registry.register(ContainsViewFilterType())
view_filter_type_registry.register(ContainsNotViewFilterType())
view_filter_type_registry.register(ContainsWordViewFilterType())
view_filter_type_registry.register(DoesntContainWordViewFilterType())
view_filter_type_registry.register(LengthIsLowerThanViewFilterType())
view_filter_type_registry.register(HigherThanViewFilterType())
view_filter_type_registry.register(HigherThanOrEqualViewFilterType())
view_filter_type_registry.register(LowerThanViewFilterType())
view_filter_type_registry.register(LowerThanOrEqualViewFilterType())
view_filter_type_registry.register(IsEvenAndWholeViewFilterType())
view_filter_type_registry.register(DateEqualViewFilterType())
view_filter_type_registry.register(DateBeforeViewFilterType())
view_filter_type_registry.register(DateBeforeOrEqualViewFilterType())
view_filter_type_registry.register(DateAfterDaysAgoViewFilterType())
view_filter_type_registry.register(DateAfterViewFilterType())
view_filter_type_registry.register(DateAfterOrEqualViewFilterType())
view_filter_type_registry.register(DateNotEqualViewFilterType())
view_filter_type_registry.register(DateEqualsTodayViewFilterType())
view_filter_type_registry.register(DateBeforeTodayViewFilterType())
view_filter_type_registry.register(DateAfterTodayViewFilterType())
view_filter_type_registry.register(DateIsWithinXDaysViewFilterType())
view_filter_type_registry.register(DateIsWithinXWeeksViewFilterType())
view_filter_type_registry.register(DateIsWithinXMonthsViewFilterType())
view_filter_type_registry.register(DateEqualsDaysAgoViewFilterType())
view_filter_type_registry.register(DateEqualsMonthsAgoViewFilterType())
view_filter_type_registry.register(DateEqualsYearsAgoViewFilterType())
view_filter_type_registry.register(DateEqualsCurrentWeekViewFilterType())
view_filter_type_registry.register(DateEqualsCurrentMonthViewFilterType())
view_filter_type_registry.register(DateEqualsDayOfMonthViewFilterType())
view_filter_type_registry.register(DateEqualsCurrentYearViewFilterType())
view_filter_type_registry.register(DateIsEqualMultiStepFilterType())
view_filter_type_registry.register(DateIsNotEqualMultiStepFilterType())
view_filter_type_registry.register(DateIsBeforeMultiStepFilterType())
view_filter_type_registry.register(DateIsOnOrBeforeMultiStepFilterType())
view_filter_type_registry.register(DateIsAfterMultiStepFilterType())
view_filter_type_registry.register(DateIsOnOrAfterMultiStepFilterType())
view_filter_type_registry.register(DateIsWithinMultiStepFilterType())
view_filter_type_registry.register(SingleSelectEqualViewFilterType())
view_filter_type_registry.register(SingleSelectNotEqualViewFilterType())
view_filter_type_registry.register(SingleSelectIsAnyOfViewFilterType())
view_filter_type_registry.register(SingleSelectIsNoneOfViewFilterType())
view_filter_type_registry.register(LinkRowHasViewFilterType())
view_filter_type_registry.register(LinkRowHasNotViewFilterType())
view_filter_type_registry.register(LinkRowContainsViewFilterType())
view_filter_type_registry.register(LinkRowNotContainsViewFilterType())
view_filter_type_registry.register(BooleanViewFilterType())
view_filter_type_registry.register(EmptyViewFilterType())
view_filter_type_registry.register(NotEmptyViewFilterType())
view_filter_type_registry.register(MultipleSelectHasViewFilterType())
view_filter_type_registry.register(MultipleSelectHasNotViewFilterType())
view_filter_type_registry.register(MultipleCollaboratorsHasViewFilterType())
view_filter_type_registry.register(MultipleCollaboratorsHasNotViewFilterType())
view_filter_type_registry.register(UserIsViewFilterType())
view_filter_type_registry.register(UserIsNotViewFilterType())
from .views.array_view_filters import (
HasAllValuesEqualViewFilterType,
HasAnySelectOptionEqualViewFilterType,
HasEmptyValueViewFilterType,
HasNoneSelectOptionEqualViewFilterType,
HasNotEmptyValueViewFilterType,
HasNotValueContainsViewFilterType,
HasNotValueContainsWordViewFilterType,
HasNotValueEqualViewFilterType,
HasNotValueHigherOrEqualTHanFilterType,
HasNotValueHigherThanFilterType,
HasNotValueLowerOrEqualTHanFilterType,
HasNotValueLowerThanFilterType,
HasValueContainsViewFilterType,
HasValueContainsWordViewFilterType,
HasValueEqualViewFilterType,
HasValueHigherOrEqualThanFilter,
HasValueLengthIsLowerThanViewFilterType,
HasValueLowerOrEqualThanFilter,
HasValueLowerThanFilter,
hasValueComparableToFilter,
)
view_filter_type_registry.register(HasValueEqualViewFilterType())
view_filter_type_registry.register(HasNotValueEqualViewFilterType())
view_filter_type_registry.register(HasValueContainsViewFilterType())
view_filter_type_registry.register(HasNotValueContainsViewFilterType())
view_filter_type_registry.register(HasValueContainsWordViewFilterType())
view_filter_type_registry.register(HasNotValueContainsWordViewFilterType())
view_filter_type_registry.register(HasValueLengthIsLowerThanViewFilterType())
view_filter_type_registry.register(HasAllValuesEqualViewFilterType())
view_filter_type_registry.register(HasEmptyValueViewFilterType())
view_filter_type_registry.register(HasNotEmptyValueViewFilterType())
view_filter_type_registry.register(HasAnySelectOptionEqualViewFilterType())
view_filter_type_registry.register(HasNoneSelectOptionEqualViewFilterType())
view_filter_type_registry.register(HasValueLowerThanFilter())
view_filter_type_registry.register(HasValueLowerOrEqualThanFilter())
view_filter_type_registry.register(hasValueComparableToFilter())
view_filter_type_registry.register(HasValueHigherOrEqualThanFilter())
view_filter_type_registry.register(HasNotValueHigherOrEqualTHanFilterType())
view_filter_type_registry.register(HasNotValueHigherThanFilterType())
view_filter_type_registry.register(HasNotValueLowerOrEqualTHanFilterType())
view_filter_type_registry.register(HasNotValueLowerThanFilterType())
from .views.view_aggregations import (
AverageViewAggregationType,
CountViewAggregationType,
DecileViewAggregationType,
EmptyCountViewAggregationType,
MaxViewAggregationType,
MedianViewAggregationType,
MinViewAggregationType,
NotEmptyCountViewAggregationType,
StdDevViewAggregationType,
SumViewAggregationType,
UniqueCountViewAggregationType,
VarianceViewAggregationType,
)
view_aggregation_type_registry.register(CountViewAggregationType())
view_aggregation_type_registry.register(EmptyCountViewAggregationType())
view_aggregation_type_registry.register(NotEmptyCountViewAggregationType())
view_aggregation_type_registry.register(UniqueCountViewAggregationType())
view_aggregation_type_registry.register(MinViewAggregationType())
view_aggregation_type_registry.register(MaxViewAggregationType())
view_aggregation_type_registry.register(SumViewAggregationType())
view_aggregation_type_registry.register(AverageViewAggregationType())
view_aggregation_type_registry.register(MedianViewAggregationType())
view_aggregation_type_registry.register(DecileViewAggregationType())
view_aggregation_type_registry.register(VarianceViewAggregationType())
view_aggregation_type_registry.register(StdDevViewAggregationType())
from .views.form_view_mode_types import FormViewModeTypeForm
form_view_mode_registry.register(FormViewModeTypeForm())
from .views.view_ownership_types import CollaborativeViewOwnershipType
view_ownership_type_registry.register(CollaborativeViewOwnershipType())
from .application_types import DatabaseApplicationType
application_type_registry.register(DatabaseApplicationType())
from .ws.pages import PublicViewPageType, RowPageType, TablePageType
page_registry.register(TablePageType())
page_registry.register(PublicViewPageType())
page_registry.register(RowPageType())
from .export.table_exporters.csv_table_exporter import CsvTableExporter
table_exporter_registry.register(CsvTableExporter())
from .trash.trash_types import (
FieldTrashableItemType,
RowsTrashableItemType,
RowTrashableItemType,
TableTrashableItemType,
ViewTrashableItemType,
)
trash_item_type_registry.register(TableTrashableItemType())
trash_item_type_registry.register(FieldTrashableItemType())
trash_item_type_registry.register(RowTrashableItemType())
trash_item_type_registry.register(RowsTrashableItemType())
trash_item_type_registry.register(ViewTrashableItemType())
from .formula.ast.function_defs import register_formula_functions
register_formula_functions(formula_function_registry)
from .rows.webhook_event_types import (
RowsCreatedEventType,
RowsDeletedEventType,
RowsUpdatedEventType,
)
webhook_event_type_registry.register(RowsCreatedEventType())
webhook_event_type_registry.register(RowsUpdatedEventType())
webhook_event_type_registry.register(RowsDeletedEventType())
from .fields.webhook_event_types import (
FieldCreatedEventType,
FieldDeletedEventType,
FieldUpdatedEventType,
)
webhook_event_type_registry.register(FieldCreatedEventType())
webhook_event_type_registry.register(FieldUpdatedEventType())
webhook_event_type_registry.register(FieldDeletedEventType())
from .views.webhook_event_types import (
ViewCreatedEventType,
ViewDeletedEventType,
ViewUpdatedEventType,
)
webhook_event_type_registry.register(ViewCreatedEventType())
webhook_event_type_registry.register(ViewUpdatedEventType())
webhook_event_type_registry.register(ViewDeletedEventType())
from .airtable.airtable_column_types import (
CheckboxAirtableColumnType,
CountAirtableColumnType,
DateAirtableColumnType,
ForeignKeyAirtableColumnType,
FormulaAirtableColumnType,
MultilineTextAirtableColumnType,
MultipleAttachmentAirtableColumnType,
MultiSelectAirtableColumnType,
NumberAirtableColumnType,
PhoneAirtableColumnType,
RatingAirtableColumnType,
RichTextTextAirtableColumnType,
SelectAirtableColumnType,
TextAirtableColumnType,
)
airtable_column_type_registry.register(TextAirtableColumnType())
airtable_column_type_registry.register(DateAirtableColumnType())
airtable_column_type_registry.register(NumberAirtableColumnType())
airtable_column_type_registry.register(SelectAirtableColumnType())
airtable_column_type_registry.register(MultiSelectAirtableColumnType())
airtable_column_type_registry.register(RatingAirtableColumnType())
airtable_column_type_registry.register(FormulaAirtableColumnType())
airtable_column_type_registry.register(CheckboxAirtableColumnType())
airtable_column_type_registry.register(PhoneAirtableColumnType())
airtable_column_type_registry.register(ForeignKeyAirtableColumnType())
airtable_column_type_registry.register(MultilineTextAirtableColumnType())
airtable_column_type_registry.register(MultipleAttachmentAirtableColumnType())
airtable_column_type_registry.register(RichTextTextAirtableColumnType())
airtable_column_type_registry.register(CountAirtableColumnType())
from .data_sync.data_sync_types import (
ICalCalendarDataSyncType,
PostgreSQLDataSyncType,
)
data_sync_type_registry.register(ICalCalendarDataSyncType())
data_sync_type_registry.register(PostgreSQLDataSyncType())
from baserow.contrib.database.table.usage_types import (
TableWorkspaceStorageUsageItemType,
)
workspace_storage_usage_item_registry.register(
TableWorkspaceStorageUsageItemType()
)
from baserow.contrib.database.views.usage_types import (
FormViewWorkspaceStorageUsageItem,
)
workspace_storage_usage_item_registry.register(
FormViewWorkspaceStorageUsageItem()
)
from baserow.core.jobs.registries import job_type_registry
from .airtable.job_types import AirtableImportJobType
from .data_sync.job_types import SyncDataSyncTableJobType
from .fields.job_types import DuplicateFieldJobType
from .file_import.job_types import FileImportJobType
from .table.job_types import DuplicateTableJobType
job_type_registry.register(AirtableImportJobType())
job_type_registry.register(FileImportJobType())
job_type_registry.register(DuplicateTableJobType())
job_type_registry.register(DuplicateFieldJobType())
job_type_registry.register(SyncDataSyncTableJobType())
post_migrate.connect(safely_update_formula_versions, sender=self)
pre_migrate.connect(clear_generated_model_cache_receiver, sender=self)
from .fields.object_scopes import FieldObjectScopeType
from .object_scopes import DatabaseObjectScopeType
from .table.object_scopes import DatabaseTableObjectScopeType
from .tokens.object_scopes import TokenObjectScopeType
from .views.object_scopes import (
DatabaseViewDecorationObjectScopeType,
DatabaseViewFilterGroupObjectScopeType,
DatabaseViewFilterObjectScopeType,
DatabaseViewGroupByObjectScopeType,
DatabaseViewObjectScopeType,
DatabaseViewSortObjectScopeType,
)
object_scope_type_registry.register(DatabaseObjectScopeType())
object_scope_type_registry.register(DatabaseTableObjectScopeType())
object_scope_type_registry.register(FieldObjectScopeType())
object_scope_type_registry.register(DatabaseViewObjectScopeType())
object_scope_type_registry.register(DatabaseViewDecorationObjectScopeType())
object_scope_type_registry.register(DatabaseViewSortObjectScopeType())
object_scope_type_registry.register(DatabaseViewGroupByObjectScopeType())
object_scope_type_registry.register(DatabaseViewFilterObjectScopeType())
object_scope_type_registry.register(DatabaseViewFilterGroupObjectScopeType())
object_scope_type_registry.register(TokenObjectScopeType())
from baserow.contrib.database.views.operations import (
CanReceiveNotificationOnSubmitFormViewOperationType,
UpdateViewFieldOptionsOperationType,
)
from .airtable.operations import RunAirtableImportJobOperationType
from .data_sync.operations import (
GetIncludingPublicValuesOperationType,
ListPropertiesOperationType,
SyncTableOperationType,
)
from .export.operations import ExportTableOperationType
from .fields.operations import (
CreateFieldOperationType,
DeleteFieldOperationType,
DeleteRelatedLinkRowFieldOperationType,
DuplicateFieldOperationType,
ListFieldsOperationType,
ReadFieldOperationType,
RestoreFieldOperationType,
UpdateFieldOperationType,
)
from .formula import TypeFormulaOperationType
from .operations import (
CreateTableDatabaseTableOperationType,
ListTablesDatabaseTableOperationType,
OrderTablesDatabaseTableOperationType,
)
from .rows.operations import (
DeleteDatabaseRowOperationType,
MoveRowDatabaseRowOperationType,
ReadAdjacentRowDatabaseRowOperationType,
ReadDatabaseRowHistoryOperationType,
ReadDatabaseRowOperationType,
RestoreDatabaseRowOperationType,
UpdateDatabaseRowOperationType,
)
from .table.operations import (
CreateRowDatabaseTableOperationType,
DeleteDatabaseTableOperationType,
DuplicateDatabaseTableOperationType,
ImportRowsDatabaseTableOperationType,
ListenToAllDatabaseTableEventsOperationType,
ListRowNamesDatabaseTableOperationType,
ListRowsDatabaseTableOperationType,
ReadDatabaseTableOperationType,
UpdateDatabaseTableOperationType,
)
from .tokens.operations import (
CreateTokenOperationType,
ReadTokenOperationType,
UpdateTokenOperationType,
UseTokenOperationType,
)
from .views.operations import (
CreateAndUsePersonalViewOperationType,
CreatePublicViewOperationType,
CreateViewDecorationOperationType,
CreateViewFilterGroupOperationType,
CreateViewFilterOperationType,
CreateViewGroupByOperationType,
CreateViewOperationType,
CreateViewSortOperationType,
DeleteViewDecorationOperationType,
DeleteViewFilterGroupOperationType,
DeleteViewFilterOperationType,
DeleteViewGroupByOperationType,
DeleteViewOperationType,
DeleteViewSortOperationType,
DuplicateViewOperationType,
ListAggregationsViewOperationType,
ListViewDecorationOperationType,
ListViewFilterOperationType,
ListViewGroupByOperationType,
ListViewsOperationType,
ListViewSortOperationType,
OrderViewsOperationType,
ReadAggregationsViewOperationType,
ReadViewDecorationOperationType,
ReadViewFieldOptionsOperationType,
ReadViewFilterGroupOperationType,
ReadViewFilterOperationType,
ReadViewGroupByOperationType,
ReadViewOperationType,
ReadViewsOrderOperationType,
ReadViewSortOperationType,
RestoreViewOperationType,
UpdateViewDecorationOperationType,
UpdateViewFilterGroupOperationType,
UpdateViewFilterOperationType,
UpdateViewGroupByOperationType,
UpdateViewOperationType,
UpdateViewPublicOperationType,
UpdateViewSlugOperationType,
UpdateViewSortOperationType,
)
from .webhooks.operations import (
CreateWebhookOperationType,
DeleteWebhookOperationType,
ListTableWebhooksOperationType,
ReadWebhookOperationType,
TestTriggerWebhookOperationType,
UpdateWebhookOperationType,
)
operation_type_registry.register(CreateTableDatabaseTableOperationType())
operation_type_registry.register(ListTablesDatabaseTableOperationType())
operation_type_registry.register(OrderTablesDatabaseTableOperationType())
operation_type_registry.register(CreateRowDatabaseTableOperationType())
operation_type_registry.register(ImportRowsDatabaseTableOperationType())
operation_type_registry.register(DeleteDatabaseTableOperationType())
operation_type_registry.register(DuplicateDatabaseTableOperationType())
operation_type_registry.register(ListRowsDatabaseTableOperationType())
operation_type_registry.register(ReadDatabaseTableOperationType())
operation_type_registry.register(UpdateDatabaseTableOperationType())
operation_type_registry.register(ReadDatabaseRowOperationType())
operation_type_registry.register(UpdateDatabaseRowOperationType())
operation_type_registry.register(DeleteDatabaseRowOperationType())
operation_type_registry.register(CreateViewSortOperationType())
operation_type_registry.register(ReadViewSortOperationType())
operation_type_registry.register(UpdateViewSortOperationType())
operation_type_registry.register(CreateViewGroupByOperationType())
operation_type_registry.register(ReadViewGroupByOperationType())
operation_type_registry.register(UpdateViewGroupByOperationType())
operation_type_registry.register(CreateFieldOperationType())
operation_type_registry.register(ReadFieldOperationType())
operation_type_registry.register(UpdateFieldOperationType())
operation_type_registry.register(DeleteFieldOperationType())
operation_type_registry.register(DeleteRelatedLinkRowFieldOperationType())
operation_type_registry.register(DuplicateFieldOperationType())
operation_type_registry.register(UpdateViewFieldOptionsOperationType())
operation_type_registry.register(DeleteViewSortOperationType())
operation_type_registry.register(DeleteViewGroupByOperationType())
operation_type_registry.register(UpdateViewSlugOperationType())
operation_type_registry.register(UpdateViewPublicOperationType())
operation_type_registry.register(ReadViewsOrderOperationType())
operation_type_registry.register(OrderViewsOperationType())
operation_type_registry.register(CreateViewOperationType())
operation_type_registry.register(CreatePublicViewOperationType())
operation_type_registry.register(CreateAndUsePersonalViewOperationType())
operation_type_registry.register(ReadViewOperationType())
operation_type_registry.register(UpdateViewOperationType())
operation_type_registry.register(
CanReceiveNotificationOnSubmitFormViewOperationType()
)
operation_type_registry.register(DeleteViewOperationType())
operation_type_registry.register(DuplicateViewOperationType())
operation_type_registry.register(CreateViewFilterOperationType())
operation_type_registry.register(ReadViewFilterOperationType())
operation_type_registry.register(UpdateViewFilterOperationType())
operation_type_registry.register(DeleteViewFilterOperationType())
operation_type_registry.register(DeleteViewDecorationOperationType())
operation_type_registry.register(CreateWebhookOperationType())
operation_type_registry.register(DeleteWebhookOperationType())
operation_type_registry.register(ReadWebhookOperationType())
operation_type_registry.register(ListTableWebhooksOperationType())
operation_type_registry.register(TestTriggerWebhookOperationType())
operation_type_registry.register(UpdateWebhookOperationType())
operation_type_registry.register(RestoreDatabaseTableOperationType())
operation_type_registry.register(RestoreDatabaseRowOperationType())
operation_type_registry.register(RestoreFieldOperationType())
operation_type_registry.register(RestoreViewOperationType())
operation_type_registry.register(RunAirtableImportJobOperationType())
operation_type_registry.register(TypeFormulaOperationType())
operation_type_registry.register(ListRowNamesDatabaseTableOperationType())
operation_type_registry.register(ReadAdjacentRowDatabaseRowOperationType())
operation_type_registry.register(ReadDatabaseRowHistoryOperationType())
operation_type_registry.register(ReadAggregationsViewOperationType())
operation_type_registry.register(ListAggregationsViewOperationType())
operation_type_registry.register(ExportTableOperationType())
operation_type_registry.register(ListFieldsOperationType())
operation_type_registry.register(ListViewsOperationType())
operation_type_registry.register(ListViewFilterOperationType())
operation_type_registry.register(ListViewDecorationOperationType())
operation_type_registry.register(CreateViewDecorationOperationType())
operation_type_registry.register(ReadViewDecorationOperationType())
operation_type_registry.register(UpdateViewDecorationOperationType())
operation_type_registry.register(ListViewSortOperationType())
operation_type_registry.register(ListViewGroupByOperationType())
operation_type_registry.register(ReadViewFieldOptionsOperationType())
operation_type_registry.register(MoveRowDatabaseRowOperationType())
operation_type_registry.register(CreateTokenOperationType())
operation_type_registry.register(ReadTokenOperationType())
operation_type_registry.register(ListenToAllDatabaseTableEventsOperationType())
operation_type_registry.register(UseTokenOperationType())
operation_type_registry.register(UpdateTokenOperationType())
operation_type_registry.register(CreateViewFilterGroupOperationType())
operation_type_registry.register(UpdateViewFilterGroupOperationType())
operation_type_registry.register(DeleteViewFilterGroupOperationType())
operation_type_registry.register(ReadViewFilterGroupOperationType())
operation_type_registry.register(SyncTableOperationType())
operation_type_registry.register(ListPropertiesOperationType())
operation_type_registry.register(GetIncludingPublicValuesOperationType())
from baserow.core.registries import permission_manager_type_registry
from .permission_manager import AllowIfTemplatePermissionManagerType
from .tokens.permission_manager import TokenPermissionManagerType
permission_manager_type_registry.register(TokenPermissionManagerType())
prev_manager = permission_manager_type_registry.get(
AllowIfTemplatePermissionManagerType.type
)
permission_manager_type_registry.unregister(
AllowIfTemplatePermissionManagerType.type
)
permission_manager_type_registry.register(
AllowIfTemplatePermissionManagerType(prev_manager)
)
from baserow.core.registries import subject_type_registry
from .tokens.subjects import TokenSubjectType
subject_type_registry.register(TokenSubjectType())
from baserow.contrib.database.data_providers.registries import (
database_data_provider_type_registry,
)
from .rows.data_providers import HumanReadableFieldsDataProviderType
database_data_provider_type_registry.register(
HumanReadableFieldsDataProviderType()
)
# notification_types
from baserow.contrib.database.fields.notification_types import (
CollaboratorAddedToRowNotificationType,
UserMentionInRichTextFieldNotificationType,
)
from baserow.contrib.database.views.notification_types import (
FormSubmittedNotificationType,
)
from baserow.core.notifications.registries import notification_type_registry
notification_type_registry.register(CollaboratorAddedToRowNotificationType())
notification_type_registry.register(
UserMentionInRichTextFieldNotificationType()
)
notification_type_registry.register(FormSubmittedNotificationType())
# The signals must always be imported last because they use the registries
# which need to be filled first.
import baserow.contrib.database.data_sync.signals # noqa: F403, F401
import baserow.contrib.database.search.signals # noqa: F403, F401
import baserow.contrib.database.ws.signals # noqa: F403, F401
post_migrate.connect(safely_update_formula_versions, sender=self)
pre_migrate.connect(clear_generated_model_cache_receiver, sender=self)
import baserow.contrib.database.fields.receivers # noqa: F401
import baserow.contrib.database.fields.tasks # noqa: F401
import baserow.contrib.database.rows.history # noqa: F401
import baserow.contrib.database.rows.tasks # noqa: F401
import baserow.contrib.database.search.tasks # noqa: F401
import baserow.contrib.database.table.receivers # noqa: F401
import baserow.contrib.database.views.tasks # noqa: F401
# noinspection PyPep8Naming
def clear_generated_model_cache_receiver(sender, **kwargs):
clear_generated_model_cache()
# noinspection PyPep8Naming
def safely_update_formula_versions(sender, **kwargs):
if settings.TESTS:
return
apps = kwargs.get("apps", None)
# app.ready will be called for management commands also, we only want to
# execute the following hook when we are starting the django server as
# otherwise backwards migrations etc will crash because of this.
if apps is not None and not settings.DONT_UPDATE_FORMULAS_AFTER_MIGRATION:
try:
FormulaField = apps.get_model("database", "FormulaField")
# noinspection PyProtectedMember
FormulaField._meta.get_field("version")
except (LookupError, FieldDoesNotExist):
print(
"Skipping formula update as FormulaField does not exist or have "
"version column."
)
# We are starting up a version of baserow before formulas with versions
# existed, there is nothing to do.
return
try:
FormulaField.objects.exists()
except ProgrammingError:
print("Skipping formula update as formula field table doesnt exist yet.")
# The migrations to create FormulaField and FormulaField.version
# exist but they have not yet been applied.
return
print("Checking to see if formulas need updating...")
from baserow.contrib.database.formula.migrations.handler import (
FormulaMigrationHandler,
)
FormulaMigrationHandler.migrate_formulas_to_latest_version()