1 | # Author: Melnychuk Taras |
---|
2 | # Contact: fenix@quintagroup.com |
---|
3 | # Date: $Date: 2005-11-23 12:57:23 +0200 (Thu, 23 Nov 2005) $ |
---|
4 | # Copyright: quintagroup.com |
---|
5 | |
---|
6 | """ShortMessage is Archetypes-based content type. It has Workflow that sends Short message upon object publishing. |
---|
7 | This module defines the following classes: |
---|
8 | |
---|
9 | - `ShortMessage`, a ShortMessage type that allows you to create your own short message |
---|
10 | Methods: |
---|
11 | - `ShortMessage.setDefaultSender`: sets none to Sender field if policy is free and enforceOriginator in other case""" |
---|
12 | |
---|
13 | __docformat__ = 'restructuredtext' |
---|
14 | |
---|
15 | from Products.CMFCore.utils import getToolByName |
---|
16 | from Products.Archetypes.public import * |
---|
17 | |
---|
18 | from validators import MaxSmValidator |
---|
19 | from config import * |
---|
20 | |
---|
21 | schema = BaseSchema+Schema(( |
---|
22 | ComputedField('title', |
---|
23 | accessor = 'Title', |
---|
24 | expression = "context.getBody()[:25]+'...'", |
---|
25 | widget=ComputedWidget( |
---|
26 | visible={'edit':'invisible', |
---|
27 | 'view':'invisible'}, ), |
---|
28 | ), |
---|
29 | StringField('sender', |
---|
30 | required=1, |
---|
31 | default_method = 'setDefaultSender', |
---|
32 | widget = StringWidget( |
---|
33 | condition = "python: object.portal_smsCommunicator.getProperty('policy') == 'free'" |
---|
34 | ) |
---|
35 | ), |
---|
36 | StringField('recipient', |
---|
37 | required=1, |
---|
38 | widget = LinesWidget( |
---|
39 | rows = 1, |
---|
40 | label="recipient"), |
---|
41 | ), |
---|
42 | TextField('body', |
---|
43 | searchable = 1, |
---|
44 | validators=MaxSmValidator(), |
---|
45 | widget = TextAreaWidget( |
---|
46 | description = "Enter your text message.", |
---|
47 | label = "Body text") |
---|
48 | ), |
---|
49 | )) |
---|
50 | |
---|
51 | class ShortMessage(BaseContent): |
---|
52 | """ShortMessage type allows you to create your own short message""" |
---|
53 | schema = schema |
---|
54 | archetype_name=ARCHETYPE_NAME |
---|
55 | |
---|
56 | def setDefaultSender(self): |
---|
57 | """ sets none to Sender field if policy is free and enforceOriginator in other case""" |
---|
58 | communicator = getToolByName(self, 'portal_smsCommunicator') |
---|
59 | policy = communicator.getProperty('policy') |
---|
60 | if policy == 'free': |
---|
61 | return None |
---|
62 | else: |
---|
63 | return communicator.getProperty('mtMessageOriginator') |
---|
64 | |
---|
65 | registerType(ShortMessage) |
---|