Skip to content

Commit

Permalink
Merge pull request #142 from collective/MrTango/dx-py3-at-removal
Browse files Browse the repository at this point in the history
Mr tango/dx py3 at removal
  • Loading branch information
MrTango committed Sep 23, 2019
2 parents 70ed8ad + 6e3d85a commit 1791d54
Show file tree
Hide file tree
Showing 63 changed files with 403 additions and 2,930 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,4 @@ docs/Makefile
/reports
/.coverage.py27-Plone51
*.sublime-project
/.coverage.*
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ matrix:
python: "3.7"
fast_finish: true
allow_failures:
- env: TOXENV=py37-Plone52
# - env: TOXENV=py37-Plone52
- env: TOXENV=py27-Plone52

before_install:
Expand Down
5 changes: 5 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
Changelog
=========
5.0.0 (unreleased)

- Remove Archetypes from code base and remove Archetypes dependencies
[MrTango]


4.0.0 (unreleased)

Expand Down
2 changes: 1 addition & 1 deletion UPGRADE.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Plone 5.1 / Python 2.7
##### Behaviors

- Newsletter: Plone users/groups as recipients
- Newsletter: Collection as source
- Newsletter: Collection as source [make sure existing Collections have the behavior set with values]


- Implement CT's methods mostly as views/utilities instead of instance methods
Expand Down
2 changes: 1 addition & 1 deletion bobtemplate.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[main]
version = 5.1
version = 5.2
template = plone_addon
git_init = y
python = python2.7
2 changes: 1 addition & 1 deletion constraints.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
-c constraints_plone51.txt
-c constraints_plone52.txt
24 changes: 4 additions & 20 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from setuptools import setup


version = '4.0.0.dev0'
version = '5.0.0.dev0'
long_description = (
open('README.rst').read() + '\n'
+ open('CHANGES.rst').read()
Expand All @@ -21,6 +21,7 @@
'Framework :: Plone :: 5.2',
'Programming Language :: Python',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.7',
'Topic :: Software Development :: Libraries :: Python Modules',
],
keywords='Plone Newsletter Mailing Email Mailinglist',
Expand All @@ -36,27 +37,21 @@
zip_safe=False,
install_requires=[
'Plone',
'BeautifulSoup',
'zope.formlib',
'jinja2',
'nameparser',
'plone.api',
'plone.app.upgrade',
'Products.Archetypes',
'Products.ATContentTypes',
'Products.CMFPlone',
'Products.TemplateFields',
'archetypes.referencebrowserwidget',
'plone.app.referenceablebehavior',
'plone.app.registry',
'plone.resource',
'beautifulsoup4',
'setuptools',
'stoneagehtml',
'plone.protect>=3.1.1',
'plone4.csrffixes>=1.1',
'emails',
'premailer',
'html2text',
'email_validator',
],
extras_require=dict(
test=[
Expand All @@ -67,17 +62,6 @@
'plone.app.robotframework[debug]',
'pdbpp'
],
fmp=['inqbus.plone.fastmemberproperties'],
zamqp=[
'collective.zamqp',
'msgpack-python',
],
taskqueue=[
'collective.taskqueue',
],
taskqueue_redis=[
'collective.taskqueue[redis]',
],
),
entry_points="""
[console_scripts]
Expand Down
20 changes: 0 additions & 20 deletions src/Products/EasyNewsletter/__init__.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,8 @@
# -*- coding: utf-8 -*-
from Products.Archetypes import atapi
from Products.CMFCore import utils as cmfutils
# avoid circular import
from Products.EasyNewsletter import config # noqa
from zope.i18nmessageid import MessageFactory


EasyNewsletterMessageFactory = MessageFactory('EasyNewsletter')
_ = EasyNewsletterMessageFactory


def initialize(context):
"""Intializer called when used as a Zope 2 product.
"""

# initialize portal content
content_types, constructors, ftis = atapi.process_types(
atapi.listTypes(config.PROJECTNAME),
config.PROJECTNAME)

cmfutils.ContentInit(
config.PROJECTNAME + ' Content',
content_types=content_types,
permission="Add portal content",
extra_constructors=constructors,
fti=ftis,
).initialize(context)
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-

# from plone import schema
from plone.autoform.interfaces import IFormFieldProvider
from plone.supermodel import model
# from Products.EasyNewsletter import _
from zope.component import adapter
from zope.interface import implementer
from zope.interface import Interface
from zope.interface import provider


class IExternalDeliveryServiceMarker(Interface):
pass


# XXX not implemented yet!
@provider(IFormFieldProvider)
class IExternalDeliveryService(model.Schema):
"""
"""

# project = schema.TextLine(
# title=_(u'Project'),
# description=_(u'Give in a project name'),
# required=False,
# )


@implementer(IExternalDeliveryService)
@adapter(IExternalDeliveryServiceMarker)
class ExternalDeliveryService(object):
def __init__(self, context):
self.context = context

# @property
# def project(self):
# if hasattr(self.context, 'project'):
# return self.context.project
# return None

# @project.setter
# def project(self, value):
# self.context.project = value
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-

# from plone import schema
from plone.autoform.interfaces import IFormFieldProvider
from plone.supermodel import model
# from Products.EasyNewsletter import _
from zope.component import adapter
from zope.interface import implementer
from zope.interface import Interface
from zope.interface import provider


class IExternalSubscriberSourcesMarker(Interface):
pass


# XXX not implemented yet!
@provider(IFormFieldProvider)
class IExternalSubscriberSources(model.Schema):
"""
"""

# project = schema.TextLine(
# title=_(u'Project'),
# description=_(u'Give in a project name'),
# required=False,
# )


@implementer(IExternalSubscriberSources)
@adapter(IExternalSubscriberSourcesMarker)
class ExternalSubscriberSources(object):
def __init__(self, context):
self.context = context

# @property
# def project(self):
# if hasattr(self.context, 'project'):
# return self.context.project
# return None

# @project.setter
# def project(self, value):
# self.context.project = value
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@

@provider(IContextAwareDefaultFactory)
def get_default_plone_receiver_members(parent):
if not INewsletter.providedBy(parent):
if not INewsletter.providedBy(parent) or not parent.__parent__:
return set()
return parent.plone_receiver_members


@provider(IContextAwareDefaultFactory)
def get_default_plone_receiver_groups(parent):
if not INewsletter.providedBy(parent):
if not INewsletter.providedBy(parent) or not parent.__parent__:
return set()
return parent.plone_receiver_groups

Expand Down
3 changes: 1 addition & 2 deletions src/Products/EasyNewsletter/browser/actions_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from plone.protect.utils import addTokenToUrl
from Products.EasyNewsletter.content.newsletter import INewsletter
from Products.EasyNewsletter.content.newsletter_issue import INewsletterIssue
from Products.EasyNewsletter.interfaces import IENLBase
from zope.component import getMultiAdapter
from zope.interface import implementer
from zope.security import checkPermission
Expand All @@ -32,7 +31,7 @@ def action(self):
def available(self):
if (checkPermission('cmf.ModifyPortalContent', self.context)
or checkPermission('cmf.ReviewPortalContent', self.context)) and \
(INewsletterIssue.providedBy(self.context) or INewsletter.providedBy(self.context) or IENLBase.providedBy(self.context)):
(INewsletterIssue.providedBy(self.context) or INewsletter.providedBy(self.context)):
return True
return False

Expand Down

0 comments on commit 1791d54

Please sign in to comment.