Misc¶
-
model.
CmsHost
¶ Returns: The string like “https://bellevue.tpsdb.com” for your church database. Return type: str This is useful for producing links such as:
linktemplate='<a href="{0}/Person2/{1}">{2}</a>' link = linktemplate.format(model.CmsHost, peopleid, name)
-
model.
FromMorningBatch
¶ Returns: True if this script is being called from the Batch Service. Return type: bool
-
model.
UserName
¶ Returns: The username of the logged on user running the script. Return type: str
-
model.
Data
¶ Return type: Dynamic Dictionary object, with keys as properties. This object is available whenever a Python Script is run.
-
model.
CallScript
(name)¶ Returns: the output of the script from all the print
statementsReturn type: str Parameters: name (str) – The name of the Python Script Special Content
-
model.
Content
(name)¶ Returns: The content Return type: str Parameters: name (str) – The name of the Content file
-
model.
DataHas
(key)¶ Returns: True if Data has a property for the specified key Return type: bool Parameters: key (str) – The name of the key (case sensitive) Example:
Data.Test = "some words" if DataHas("Test"): print Data.Test
-
model.
DynamicData
()¶ Returns: a new DynamicData object Return type: DynamicData This function returns a new DynamicData object that can be used in Python to hold data with name/value pairs.
The easiest way to explain is by examples of what it can do. Try the following code:
dd = model.DynamicData() dd.value1 = "Value one" dd.value2 = 123 print '<pre>' print dd print '</pre>'
When executed the following shows on the screen:
{ "value1": "Value one", "value2": 123 }
So you are able to store arbitrary values into a DynamicData object in a very simple manner. The output of the print statement presents a representation of the data in JSON format.
Try this:
dd = model.DynamicData() dd.title = 'This is a demonstration of using multiple levels' dd.lev = model.DynamicData() dd.lev.str = "This is in the second level" dd.lev.num1 = 1 dd.lev.num2 = 2 print '<pre>' print dd print 'The sum of num1 and num2 is:', dd.lev.num1 + dd.lev.num2 print '</pre>'
When executed the following is printed to the screen:
{ "title": "This is a demonstration of using multiple levels", "lev": { "str": "This is in the second level", "num1": 1, "num2": 2 } } The sum of num1 and num2 is: 3
Note that there are two assignments of a DynamicData object. The second assiment is to
dd.lev
, a member of the first object. This way, nested heirarchys are simple and can hold complex and organized structures.Note how
dd.lev.num1
clearly shows the heirarchy from the first level (dd
) to the second level (lev
) through the dot notation (.
).
-
model.
FmtPhone
(phone, *prefix)¶ Returns: The formatted phone number, e.g. 901-555-1212.
Return type: str
Parameters: - phone (str) – The phone number to format.
- prefix (str) – *Optional, Goes in front of the formatted number, e.g. (c) for cell phone.
-
model.
FmtZip
(zipcode)¶ Returns: The zip code formatted with “plus four” (e.g. 38018-2243 ) Return type: str Parameters: zipcode (str) – The zipcode number to format.
-
model.
HtmlContent
(name)¶ Returns: The body of the HTML content saved in Special Content > HTML under name. Return type: str Parameters: name (str) – The name of the content
-
model.
SqlContent
(name)¶ Returns: The SQL content saved in Special Content > SQL Scripts Return type: str Parameters: name (str) – The name of the script
-
model.
TextContent
(name)¶ Returns: The text saved in Special Content > Text Content Return type: str Parameters: name (str) – The name of the text file
-
model.
TitleContent
(name)¶ Returns: The title attribute of the content saved in Special Content under name. Return type: str Parameters: name (str) – The name of the content This is often used to store the Subject of an email represented by the content.
-
model.
Replace
(text, pattern, replacement)¶ Returns: The new string with all occurrences of pattern in text replaced with replacement.
Return type: str
Parameters: - text (str) – The entire string to be modified.
- pattern (str) – The special text to be replaced.
- replacement (str) – The replacement text.
-
Markdown
(text)¶ Returns: The rendered HTML text Return type: str Parameters: text (str) – The markdown text
-
RegexMatch
(s, regex)¶ Returns: The matched text
Return type: str
Parameters: - s (str) – the target string to be searched for a match
- regex (str) – the Regular Expression pattern to match on
-
RestGet
(url, headers, *user, *password)¶ Returns: The content of the returned result
Return type: str
Parameters: - url (str) – The fully qualified URL of the REST endpoint
- headers (Dictionary) – The data passed as headers (stored as a Python Dictionary object)
- user (str) – The optional user name
- password (str) – The optional password
The user and password are passed as a Basic Authentication string The HTTP verb is GET.
-
RestPost
(url, headers, obj, *user, *password)¶ Returns: The content of the returned result
Return type: str
Parameters: - url (str) – The fully qualified URL of the REST endpoint
- headers (Dictionary) – The data passed as headers (stored as a Python Dictionary object)
- obj (object) – The body of the POST method
- user (str) – The optional user name
- password (str) – The optional password
The user and password are passed as a Basic Authentication string The HTTP verb is POST.
The obj will be converted to a string and passed to the REST POST endpoint.
-
RestPostJson
(url, headers, obj, *user, *password)¶ Returns: The content of the returned result
Return type: str
Parameters: - url (str) – The fully qualified URL of the REST endpoint
- headers (Dictionary) – The data passed as headers (stored as a Python Dictionary object)
- obj (object) – The body of the POST method
- user (str) – The optional user name
- password (str) – The optional password
The user and password are passed as a Basic Authentication string The HTTP verb is POST.
The body will be Serialized into a JSON string.
-
RestDelete
(url, headers, *user, *password)¶ Returns: The content of the returned result
Return type: str
Parameters: - url (str) – The fully qualified URL of the REST endpoint
- headers (Dictionary) – The data passed as headers (stored as a Python Dictionary object)
- user (str) – The optional user name
- password (str) – The optional password
The user and password are passed as a Basic Authentication string The HTTP verb is DELETE
-
JsonDeserialize
(jsontext)¶ Returns: The content of the returned result Return type: dynamic Parameters: jsontext (str) – The JSON text.
-
JsonDeserialize2
(jsontext)¶ Returns: The content of the returned result Return type: List of dynamic: A Python List of Python Dictionary objects Parameters: jsontext (str) – The JSON text. This method is designed to deserialize an array of json objects.
-
JsonSerialize
(obj)¶ Returns: The object converted into a JSON string Return type: str Parameters: obj (object) – The object to be converted
-
Setting
(name, def)¶ Returns: The Setting value
Return type: str
Parameters: - name (str) – The name of the Setting
- def (str) – The optional default value, an empty string if not passed
-
FormatJson
(json)¶ Returns: The formatted json Return type: str Parameters: json (str) – The compressed json string to be formatted This adds indentation and newlines to a compressed json string making it easier to read.
-
FormatJson
(data) Returns: The formatted json Return type: str Parameters: data (dictionary) – The Python object that should be formatted as Json Works the same as previous except that you pass in a Python object instead of a json string.
-
Md5Hash
(text)¶ Returns: A hashed string Return type: str Parameters: text (str) – The string to be hashed
-
CreateQueryTag
(name, code)¶ Returns: The count of people in the target
Return type: int
Parameters: - name (str) – The name of the QueryTag
- code (str) – The Search Builder code to be run
This creates a special type of tag called QueryTag. It uses the same table that holds all other tags. But this type is only managed (created and deleted) with a Python script. If QueryTags will be used for multiple purposes, it is important to name the tags with a common prefix for a given purpose or project. This way it will be easy to delete a project’s query tags to start over without disturbing other projects.
-
DeleteQueryTags
(namelike)¶ Parameters: namelike (str) – The name of the QueryTag using % as wild card(s)
-
WriteContentSql
(name, sql)¶ Parameters: - name (str) – The name of the file
- sql (str) – The SQL code to be written
This function writes Sql content to a Sql Script file in Special Content. If the file exists it will be overwritten. Otherwise, a new file is created.
-
WriteContentText
(name, text)¶ Parameters: - name (str) – The name of the file
- text (str) – The text to be written
This function writes text to a Text file in Special Content. If the file exists it will be overwritten. Otherwise, a new file is created.
-
CsvReader
(text)¶ Returns: an object to use for reading the csv file Return type: CsvHelper.CsvReader Parameters: text (str) – The text of the csv content Example:
csv = model.CsvReader(model.Data.file) while csv.Read(): Date = model.ParseDate(csv['Date']) Amount = csv['Amount']
-
CsvReaderNoHeader
(text)¶ Returns: an object to use for reading the csv file Return type: CsvHelper.CsvReader Parameters: text (str) – The text of the csv content Example:
csv = model.CsvReader(model.Data.file) while csv.Read(): Date = model.ParseDate(csv[0]) Amount = csv[1]
-
model.
AppendIfBoth
(s1, join, s2)¶ Returns: the resulting string
Return type: str
Parameters: - s1 (str) – the first string
- join (str) – the text to join between the two strings
- s2 (str) – the second string
If both s1 and s2 have values, the concatenation of s1 + join + s2 will be returned, otherwise just s1 is returned.
-
model.
DynamicDataFromJson
(json)¶ Returns: the DynamicData object Return type: DynamicData Parameters: json (str) – the string of JSON code Example:
json = ''' { "Member": { "RowType": "Member", "FamilyCnt": 2746, "RecurringCnt": 110, "MonthlyAmt": 76831.975 }, "NonMember": { "RowType": "NonMember", "FamilyCnt": 2887, "RecurringCnt": 20, "MonthlyAmt": 8372.175 }, "Combined": { "RowType": "Combined", "FamilyCnt": 5633, "RecurringCnt": 130, "MonthlyAmt": 85204.15 }, "Created": "3/11/19 3:51 PM" } ''' data = model.DynamicDataFromJson(json) print data.Created print data.NonMember.MonthlyAmt
The two print statements will output the appropriate values.
-
model.
CustomStatementsFundIdList
(name)¶ Returns: the string with all fundids in a comma separated list. Return type: str Parameters: name (str) – the name of the FundList See also
Custom Contribution Statements and /CustomProgramming/TextScripts/CustomFundSets
-
model.
SpaceCamelCase
(s)¶ Returns: the string with space separated words at each Capital letter. Return type: str Parameters: s (str) – the CamelCasedWords string to be expanded.
-
model.
UserIsInRole
(role)¶ Returns: True or False Return type: bool Parameters: role (str) – the role to check