forked from ungleich-public/dynamicweb
fix aldryn_newsblog
This commit is contained in:
parent
2bfbb9c927
commit
b43ca2982d
12 changed files with 67 additions and 39 deletions
|
|
@ -1353,3 +1353,11 @@ class PlaceholderAdmin(BaseEditableAdminMixin, admin.ModelAdmin):
|
|||
}
|
||||
request.current_app = self.admin_site.name
|
||||
return TemplateResponse(request, "admin/cms/page/plugin/delete_confirmation.html", context)
|
||||
|
||||
|
||||
class PlaceholderAdminMixin:
|
||||
"""
|
||||
Compatibility shim for older third-party packages such as
|
||||
aldryn-newsblog.
|
||||
"""
|
||||
pass
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
from cms.extensions import PageExtension
|
||||
from cms.extensions.extension_pool import extension_pool
|
||||
from cms.models.fields import PlaceholderField
|
||||
from cms.models.fields import PlaceholderField, PlaceholderRelationField
|
||||
from cms.models.pluginmodel import CMSPlugin
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
|
|
@ -24,13 +24,13 @@ class CMSIntegration(models.Model):
|
|||
'fetch the Integration into pages'
|
||||
)
|
||||
)
|
||||
footer_placeholder = PlaceholderField(
|
||||
footer_placeholder = PlaceholderRelationField(
|
||||
'datacenterlight_footer', related_name='dcl-footer-placeholder+'
|
||||
)
|
||||
navbar_placeholder = PlaceholderField(
|
||||
navbar_placeholder = PlaceholderRelationField(
|
||||
'datacenterlight_navbar', related_name='dcl-navbar-placeholder+'
|
||||
)
|
||||
calculator_placeholder = PlaceholderField(
|
||||
calculator_placeholder = PlaceholderRelationField(
|
||||
'datacenterlight_calculator',
|
||||
related_name='dcl-calculator-placeholder+'
|
||||
)
|
||||
|
|
@ -350,7 +350,7 @@ class DCLCalculatorPluginModel(CMSPlugin):
|
|||
related_name="dcl_custom_pricing_vm_pricing",
|
||||
help_text='Choose a pricing that will be associated with this '
|
||||
'Calculator',
|
||||
on_delete=models.SET_NULL
|
||||
on_delete=models.SET_NULL, null=True,
|
||||
)
|
||||
vm_type = models.CharField(
|
||||
max_length=50, choices=VMTemplate.VM_TYPE_CHOICES,
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ class IsNotMemberMixin(object):
|
|||
|
||||
|
||||
class Ordereable(models.Model):
|
||||
customer = models.ForeignKey(StripeCustomer, on_delete=models.SET_NULL)
|
||||
customer = models.ForeignKey(StripeCustomer, on_delete=models.SET_NULL, null=True,)
|
||||
amount = models.FloatField()
|
||||
billing_address = models.ForeignKey(BillingAddress, on_delete=models.SET_NULL)
|
||||
billing_address = models.ForeignKey(BillingAddress, on_delete=models.SET_NULL, null=True,)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
approved = models.BooleanField(default=False)
|
||||
last4 = models.CharField(max_length=4, blank=True)
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class MembershipType(models.Model):
|
|||
|
||||
|
||||
class Membership(models.Model):
|
||||
type = models.ForeignKey(MembershipType, on_delete=models.SET_NULL)
|
||||
type = models.ForeignKey(MembershipType, on_delete=models.SET_NULL, null=True,)
|
||||
active = models.BooleanField(default=True)
|
||||
start_date = models.DateField()
|
||||
end_date = models.DateField()
|
||||
|
|
@ -141,7 +141,7 @@ class Membership(models.Model):
|
|||
|
||||
|
||||
class MembershipOrder(Ordereable, models.Model):
|
||||
membership = models.ForeignKey(Membership, on_delete=models.SET_NULL)
|
||||
membership = models.ForeignKey(Membership, on_delete=models.SET_NULL, null=True)
|
||||
start_date = models.DateField()
|
||||
end_date = models.DateField()
|
||||
stripe_subscription_id = models.CharField(max_length=100, null=True)
|
||||
|
|
@ -268,7 +268,7 @@ class BookingOrder(Ordereable, models.Model):
|
|||
(CANCELLED, 'Cancelled')
|
||||
)
|
||||
|
||||
booking = models.OneToOneField(Booking, on_delete=models.SET_NULL)
|
||||
booking = models.OneToOneField(Booking, on_delete=models.SET_NULL, null=True)
|
||||
original_price = models.FloatField()
|
||||
special_month_price = models.FloatField()
|
||||
status = models.PositiveIntegerField(choices=STATUS_CHOICES, default=1)
|
||||
|
|
@ -297,7 +297,7 @@ class BookingOrder(Ordereable, models.Model):
|
|||
|
||||
class BookingCancellation(models.Model):
|
||||
|
||||
order = models.ForeignKey(BookingOrder, on_delete=models.SET_NULL)
|
||||
order = models.ForeignKey(BookingOrder, on_delete=models.SET_NULL, null=True)
|
||||
created_at = models.DateTimeField(auto_now=True)
|
||||
required_refund = models.BooleanField(default=True)
|
||||
refund = models.BooleanField(default=False)
|
||||
|
|
@ -337,7 +337,7 @@ class DGGallery(models.Model):
|
|||
|
||||
|
||||
class DGPicture(models.Model):
|
||||
gallery = models.ForeignKey(DGGallery, on_delete=models.SET_NULL)
|
||||
gallery = models.ForeignKey(DGGallery, on_delete=models.SET_NULL, null=True,)
|
||||
image = FilerImageField(related_name='dg_gallery')
|
||||
description = models.CharField(max_length=60)
|
||||
|
||||
|
|
@ -346,7 +346,7 @@ class DGPicture(models.Model):
|
|||
|
||||
|
||||
class DGGalleryPlugin(CMSPlugin):
|
||||
dgGallery = models.ForeignKey(DGGallery, on_delete=models.SET_NULL)
|
||||
dgGallery = models.ForeignKey(DGGallery, on_delete=models.SET_NULL, null=True,)
|
||||
|
||||
|
||||
class DGSupportersPlugin(CMSPlugin):
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import hashlib
|
|||
from aldryn_apphooks_config.fields import AppHookConfigField
|
||||
from aldryn_apphooks_config.managers.parler import AppHookConfigTranslatableManager
|
||||
from cms.models import CMSPlugin
|
||||
from cms.models.fields import PlaceholderField
|
||||
from cms.models.fields import PlaceholderField, PlaceholderRelationField
|
||||
from django.conf import settings as dj_settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.sites.shortcuts import get_current_site
|
||||
|
|
@ -268,9 +268,9 @@ class Post(KnockerModel, BlogMetaMixin, TranslatableModel):
|
|||
post_text=HTMLField(_("text"), default="", blank=True, configuration="BLOG_POST_TEXT_CKEDITOR"),
|
||||
meta={"unique_together": (("language_code", "slug"),)},
|
||||
)
|
||||
media = PlaceholderField("media", related_name="media")
|
||||
content = PlaceholderField("post_content", related_name="post_content")
|
||||
liveblog = PlaceholderField("live_blog", related_name="live_blog")
|
||||
media = PlaceholderRelationField("media", related_name="media")
|
||||
content = PlaceholderRelationField("post_content", related_name="post_content")
|
||||
liveblog = PlaceholderRelationField("live_blog", related_name="live_blog")
|
||||
enable_liveblog = models.BooleanField(verbose_name=_("enable liveblog on post"), default=False)
|
||||
|
||||
objects = GenericDateTaggedManager()
|
||||
|
|
|
|||
|
|
@ -110,12 +110,12 @@ INSTALLED_APPS = (
|
|||
'filer',
|
||||
'djangocms_blog',
|
||||
'cms', # django CMS itself
|
||||
#TODO'aldryn_apphooks_config',
|
||||
#TODO'aldryn_boilerplates',
|
||||
#TODO'aldryn_categories',
|
||||
#TODO'aldryn_common',
|
||||
#TODO'aldryn_newsblog',
|
||||
#TODO'aldryn_people',
|
||||
'aldryn_apphooks_config',
|
||||
'aldryn_boilerplates',
|
||||
'aldryn_categories',
|
||||
'aldryn_common',
|
||||
'aldryn_newsblog',
|
||||
'aldryn_people',
|
||||
#TODO'aldryn_reversion',
|
||||
#TODO'aldryn_translation_tools',
|
||||
'treebeard', # utilities for implementing a tree
|
||||
|
|
@ -125,7 +125,7 @@ INSTALLED_APPS = (
|
|||
|
||||
# 2nd migrate
|
||||
# django-cms plugins
|
||||
#TODO'djangocms_file',
|
||||
'djangocms_file',
|
||||
#TODO'djangocms_picture',
|
||||
#TODO'djangocms_video',
|
||||
#TODO'django_recaptcha',
|
||||
|
|
@ -158,23 +158,33 @@ INSTALLED_APPS = (
|
|||
'opennebula_api',
|
||||
'django_celery_results',
|
||||
'webhook',
|
||||
|
||||
'django.contrib.postgres',
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
MIDDLEWARE = (
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
|
||||
'utils.middleware.MultipleProxyMiddleware',
|
||||
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
|
||||
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
|
||||
# django-cms middlewares
|
||||
'cms.middleware.user.CurrentUserMiddleware',
|
||||
'cms.middleware.page.CurrentPageMiddleware',
|
||||
'cms.middleware.toolbar.ToolbarMiddleware',
|
||||
'cms.middleware.language.LanguageCookieMiddleware',
|
||||
|
||||
'multisite.middleware.DynamicSiteMiddleware',
|
||||
'djangocms_multisite.middleware.CMSMultiSiteMiddleware',
|
||||
)
|
||||
|
|
|
|||
|
|
@ -238,8 +238,8 @@ class UserHostingKey(models.Model):
|
|||
|
||||
|
||||
class HostingBill(AssignPermissionsMixin, models.Model):
|
||||
customer = models.ForeignKey(StripeCustomer, on_delete=models.SET_NULL)
|
||||
billing_address = models.ForeignKey(BillingAddress, on_delete=models.SET_NULL)
|
||||
customer = models.ForeignKey(StripeCustomer, on_delete=models.SET_NULL, null=True,)
|
||||
billing_address = models.ForeignKey(BillingAddress, on_delete=models.SET_NULL, null=True,)
|
||||
total_price = models.FloatField(default=0.0)
|
||||
|
||||
permissions = ('view_hostingbill',)
|
||||
|
|
@ -263,8 +263,8 @@ class MonthlyHostingBill(AssignPermissionsMixin, models.Model):
|
|||
"""
|
||||
Corresponds to Invoice object of Stripe
|
||||
"""
|
||||
customer = models.ForeignKey(StripeCustomer, on_delete=models.SET_NULL)
|
||||
order = models.ForeignKey(HostingOrder, on_delete=models.SET_NULL)
|
||||
customer = models.ForeignKey(StripeCustomer, on_delete=models.SET_NULL, null=True,)
|
||||
order = models.ForeignKey(HostingOrder, on_delete=models.SET_NULL, null=True,)
|
||||
created = models.DateTimeField(help_text="When the invoice was created")
|
||||
receipt_number = models.CharField(
|
||||
help_text="The receipt number that is generated on Stripe",
|
||||
|
|
@ -554,7 +554,7 @@ class HostingBillLineItem(AssignPermissionsMixin, models.Model):
|
|||
|
||||
|
||||
class VMDetail(models.Model):
|
||||
user = models.ForeignKey(CustomUser, on_delete=models.SET_NULL)
|
||||
user = models.ForeignKey(CustomUser, on_delete=models.SET_NULL, null=True,)
|
||||
vm_id = models.IntegerField(default=0)
|
||||
disk_size = models.FloatField(default=0.0)
|
||||
cores = models.FloatField(default=0.0)
|
||||
|
|
|
|||
|
|
@ -527,4 +527,5 @@ import django.template.library
|
|||
from django.template.library import Library
|
||||
|
||||
if not hasattr(Library, "assignment_tag"):
|
||||
Library.assignment_tag = Library.simple_tag
|
||||
Library.assignment_tag = Library.simple_tag
|
||||
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ def validate_name(value):
|
|||
|
||||
class CustomUser(AbstractBaseUser, PermissionsMixin):
|
||||
VALIDATED_CHOICES = ((0, 'Not validated'), (1, 'Validated'))
|
||||
site = models.ForeignKey(Site, default=1, on_delete=models.SET_NULL)
|
||||
site = models.ForeignKey(Site, default=1, on_delete=models.SET_NULL, null=True,)
|
||||
name = models.CharField(max_length=50, validators=[validate_name])
|
||||
email = models.EmailField(unique=True)
|
||||
username = models.CharField(max_length=60, unique=True, null=True)
|
||||
|
|
@ -270,7 +270,7 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
|
|||
|
||||
|
||||
class StripeCustomer(models.Model):
|
||||
user = models.OneToOneField(CustomUser, on_delete=models.SET_NULL)
|
||||
user = models.OneToOneField(CustomUser, on_delete=models.SET_NULL, null=True,)
|
||||
stripe_id = models.CharField(unique=True, max_length=100)
|
||||
|
||||
def __str__(self):
|
||||
|
|
@ -362,7 +362,7 @@ class DeletedUser(models.Model):
|
|||
|
||||
class Calendar(models.Model):
|
||||
datebooked = models.DateField()
|
||||
user = models.ForeignKey(CustomUser, on_delete=models.SET_NULL)
|
||||
user = models.ForeignKey(CustomUser, on_delete=models.SET_NULL, null=True,)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if kwargs.get('datebooked'):
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ class DonatorStatus(models.Model):
|
|||
(ACTIVE, 'Active'),
|
||||
(CANCELED, 'Canceled')
|
||||
)
|
||||
user = models.OneToOneField(CustomUser, on_delete=models.SET_NULL)
|
||||
user = models.OneToOneField(CustomUser, on_delete=models.SET_NULL, null=True,)
|
||||
status = models.CharField(choices=STATUS_CHOICES, max_length=10, default=ACTIVE)
|
||||
|
||||
def __str__(self):
|
||||
|
|
@ -29,9 +29,9 @@ class DonatorStatus(models.Model):
|
|||
class Donation(models.Model):
|
||||
|
||||
donation = models.FloatField()
|
||||
donator = models.ForeignKey(StripeCustomer, on_delete=models.SET_NULL)
|
||||
donator = models.ForeignKey(StripeCustomer, on_delete=models.SET_NULL, null=True,)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
billing_address = models.ForeignKey(BillingAddress, on_delete=models.SET_NULL)
|
||||
billing_address = models.ForeignKey(BillingAddress, on_delete=models.SET_NULL, null=True,)
|
||||
last4 = models.CharField(max_length=4)
|
||||
cc_brand = models.CharField(max_length=10)
|
||||
stripe_charge_id = models.CharField(max_length=100, null=True)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
aldryn-apphooks-config==0.7.0
|
||||
aldryn-boilerplates==0.8.0
|
||||
aldryn-categories==1.2.0
|
||||
aldryn-common==1.0.5
|
||||
aldryn-newsblog==2.2.1
|
||||
aldryn-people==2.2.0
|
||||
aldryn-translation-tools==0.3.0
|
||||
amqp==5.4.0
|
||||
asgiref==3.12.1
|
||||
babel==2.18.0
|
||||
|
|
@ -19,6 +23,7 @@ django-appconf==1.2.0
|
|||
django-appdata==0.4.0
|
||||
django-bootstrap3==26.2
|
||||
django-classy-tags==0.8.0
|
||||
django-cms==5.1.3
|
||||
django-debug-toolbar==8.0.0
|
||||
django-filer==3.6.0
|
||||
django-formtools==2.1
|
||||
|
|
@ -44,6 +49,9 @@ django-treebeard==4.3.1
|
|||
django_celery_results==2.6.0
|
||||
django_compressor==4.6.0
|
||||
djangocms-admin-style==3.3.1
|
||||
djangocms-apphook-setup==0.5.1
|
||||
djangocms-attributes-field==4.1.2
|
||||
djangocms-file==4.0.1
|
||||
djangocms-multisite==0.3.1
|
||||
djangocms-text-ckeditor==5.1.7
|
||||
djangorestframework==3.18.1
|
||||
|
|
@ -53,6 +61,7 @@ idna==3.20
|
|||
kombu==5.6.2
|
||||
ldap3==2.9.1
|
||||
lxml==6.1.3
|
||||
lxml_html_clean==0.4.5
|
||||
oca @ git+https://github.com/ungleich/python-oca.git@9bbda45683736a608c99d5e4bff65e50c93f734f
|
||||
packaging==26.3
|
||||
phonenumbers==9.0.40
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class BillingAddress(BaseBillingAddress):
|
|||
|
||||
|
||||
class UserBillingAddress(BaseBillingAddress):
|
||||
user = models.ForeignKey(CustomUser, related_name='billing_addresses', on_delete=models.SET_NULL)
|
||||
user = models.ForeignKey(CustomUser, related_name='billing_addresses', on_delete=models.SET_NULL, null=True)
|
||||
current = models.BooleanField(default=True)
|
||||
|
||||
def __str__(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue