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
statements- Return 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