예제 #1
0
    def practice_service_messages(self):
        grades = [10, 11, 12]
        messages = []

        expiring_services = self.expiring_services()
        # Format messages about expiring services.
        if expiring_services.values():
            msg = ''
            num_days = self.number_of_days_until(expiring_services)
            if num_days < 1:
                days = 'today.'
            else:
                days = num_days > 1 and 'in %s days.' or 'in %s day.'
                days = days % num_days
            template = 'Your access to %s practice will expire '+days

            service_grades = expiring_services.keys()
            service_grades.sort()
            if service_grades == grades:
                msg = template % self.subject.capitalize()
            else:
                services = ' and '.join(['Grade %s' %s for s in service_grades])
                msg = template % services
            messages.append(msg)
        else:
            # no services expiring? Then don't show any messages.
            return []
        
        # Now, we do the formatting of the active services.
        active_services = self.active_services()
        # Remove all the services that we already reported on above.
        for grade in expiring_services.keys():
            active_services.pop(grade, None)
        if active_services.values():
            # flatten the list of memberservice lists
            memberservices = ListType(chain.from_iterable(active_services.values()))
            # sort according to expiry_date
            memberservices.sort(key=lambda service: service.expiry_date)
            # use the first expiry date
            formatted_expiry_date = \
                self.format_date(memberservices[0].expiry_date)

            msg = ''
            template = 'You will still have access to %s practice until %s.'
            service_grades = active_services.keys()
            service_grades.sort()
            services = ' and '.join(['Grade %s' %s for s in service_grades])
            msg = template % (services, formatted_expiry_date) 
            messages.append(msg)
        
        # Lastly, add a link to the order form.
        if expiring_services:
            messages.append(
                '<a href="/order">To extend your subscription, click here.</a>')

        return messages
예제 #2
0
 def number_of_days_until(self, expiring_services):
     # flatten the list of memberservice lists
     memberservices = ListType(chain.from_iterable(expiring_services.values()))
     # sort according to expiry_date
     memberservices.sort(key=lambda service: service.expiry_date)
     # use the last expiry date
     expiry_date = memberservices[0].expiry_date
     now = datetime.now().date()
     delta = expiry_date - now
     return delta.days
	def __init__(self, size_or_iterable, itemClass=None):
		"""
		size:		Array size
		itemClass:  Item class to check in setter
		"""
		MethodDisabler.__init__(self)
		self.__itemClass = itemClass

		if isinstance(size_or_iterable, (types.IntType, types.LongType)):
			ListType.extend(self, [None]*size_or_iterable)
		else:
			ListType.extend(self, list(size_or_iterable))
	def __setitem__(self, i, item):
		if self.__itemClass is None or item is None or isinstance(item, self.__itemClass):
			ListType.__setitem__(self, i, item)
		else:
			raise TypeError, "List assignment item type missmatch, expected %s, got %s" % ( self.__itemClass, item.__class__,)
	def __setslice__(self, i, j, y):
		if j-i == len(y):
			ListType.__setslice__(self, i, j, y)
		else:
			raise IndexError, "Length change requested in list slice assignment: %d-%d != %d" % (j, i, len(y))
예제 #6
0
 def __init__(self, line_type):
     ListType.__init__(self)
     self.line_type = line_type
    print "Please specify the id of your plone site as the first argument "
    print "to this script."
    print "Usage: <instancehome>/bin/instance run %s <id>" % sys.argv[0]
    sys.exit(1)

portal = app[portal_id]
setSite(portal)

# we assume there is an admin user
app = makerequest.makerequest(app)
user = app.acl_users.getUser('admin')
newSecurityManager(None, user.__of__(app.acl_users))

newsletters = portal._getOb('newsletters')
newsletter = newsletters._getOb('everything-news')
receivers = ListType(newsletter.ploneReceiverMembers)
skipped = []

count = 0
prop_name = 'subscribe_to_newsletter'

all_members = portal.portal_membership.listMembers()

non_mxit_members = []
for member in all_members:
    if member.getId().endswith('mxit.com'):
        continue
    non_mxit_members.append(member)

for member in non_mxit_members:
    count += 1