{ "info": { "author": "utsurius", "author_email": "przemek@upsecure.pl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 3.2", "Framework :: Django :: 4.0", "Framework :: Django :: 4.1", "Framework :: Django :: 4.2", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "

\n \n Actionable messages\n \n

\n\n

\n \n \"github\"/\n \n \n \"pypi\"/\n \n \n \"python\"/\n \n \n \"django\"/\n \n \n \"license\"/\n \n

\n\n1. [Base informations](#base-informations)\n2. [Installation](#installation)\n3. [Requirements](#requirements)\n4. [Usage](#usage)\n5. [AdaptiveCard](#adaptivecard)\n * [Elements](#adaptivecard-elements)\n * [TextBlock](#adaptivecard-textblock)\n * [Image](#adaptivecard-image)\n * [MediaSource](#adaptivecard-mediasource)\n * [CaptionSource](#adaptivecard-captionsource)\n * [Media](#adaptivecard-media)\n * [TextRun](#adaptivecard-textrun)\n * [RichTextBlock](#adaptivecard-richtextblock)\n * [Inputs](#adaptivecard-inputs)\n * [TextInput](#adaptivecard-textinput)\n * [NumberInput](#adaptivecard-numberinput)\n * [DateInput](#adaptivecard-dateinput)\n * [TimeInput](#adaptivecard-timeinput)\n * [ToggleInput](#adaptivecard-toggleinput)\n * [InputChoice](#adaptivecard-inputchoice)\n * [ChoiceSetInput](#adaptivecard-choicesetinput)\n * [DataQuery](#adaptivecard-dataquery)\n * [Actions](#adaptivecard-actions)\n * [OpenUrl](#adaptivecard-openurl)\n * [Submit](#adaptivecard-submit)\n * [ShowCard](#adaptivecard-showcard)\n * [TargetElement](#adaptivecard-targetelement)\n * [ToggleVisibility](#adaptivecard-togglevisibility)\n * [Execute](#adaptivecard-execute)\n * [Containers](#adaptivecard-containers)\n * [ActionSet](#adaptivecard-actionset)\n * [Container](#adaptivecard-container)\n * [Column](#adaptivecard-column)\n * [ColumnSet](#adaptivecard-columnset)\n * [Fact](#adaptivecard-fact)\n * [FactSet](#adaptivecard-factset)\n * [ImageSet](#adaptivecard-imageset)\n * [TableCell](#adaptivecard-tablecell)\n * [TableRow](#adaptivecard-tablerow)\n * [Table](#adaptivecard-table)\n * [Types](#adaptivecard-types)\n * [BackgroundImage](#adaptivecard-backgroundimage)\n * [Refresh](#adaptivecard-refresh)\n * [TokenExchangeResource](#adaptivecard-tokenexchangeresource)\n * [AuthCardButton](#adaptivecard-authcardbutton)\n * [Authentication](#adaptivecard-authentication)\n * [Metadata](#adaptivecard-metadata)\n * [Cards](#adaptivecard-cards)\n * [AdaptiveCard](#adaptivecard-adaptivecard)\n6. [MessageCard](#messagecard)\n * [Elements](#messagecard-elements)\n * [Header](#messagecard-header)\n * [Fact](#messagecard-fact)\n * [HeroImage](#messagecard-heroimage)\n * [InputChoice](#messagecard-inputchoice)\n * [ActionTarget](#messagecard-actiontarget)\n * [Inputs](#messagecard-inputs)\n * [TextInput](#messagecard-textinput)\n * [DateInput](#messagecard-dateinput)\n * [MultiChoiceInput](#messagecard-multichoiceinput)\n * [Actions](#messagecard-actions)\n * [OpenUri](#messagecard-openuri)\n * [HttpPOST](#messagecard-httppost)\n * [InvokeAddInCommand](#messagecard-invokeaddincommand)\n * [ActionCard](#messagecard-actioncard)\n * [Sections](#messagecard-sections)\n * [Section](#messagecard-section)\n * [Cards](#messagecard-cards)\n * [MessageCard](#messagecard-messagecard)\n7. [HeroCard](#herocard)\n * [Elements](#herocard-elements)\n * [OpenUrl](#herocard-openurl)\n * [Image](#herocard-image)\n * [Cards](#herocard-cards)\n * [HeroCard](#herocard-herocard)\n8. [ThumbnailCard](#thumbnailcard)\n * [Elements](#thumbnailcard-elements)\n * [Cards](#thumbnailcard-cards)\n * [ThumbnailCard](#thumbnailcard-thumbnailcard)\n\n\n

Base informations

\n\n[Playground V2](https://messagecardplayground.azurewebsites.net/)\n\n[Send an actionable message via email in Office 365](https://docs.microsoft.com/en-gb/outlook/actionable-messages/send-via-email)\n\n[Outlook version requirements for actionable messages](https://docs.microsoft.com/en-us/outlook/actionable-messages/#outlook-version-requirements-for-actionable-messages)\n\n\n

Installation

\n\n`pip install git+https://github.com/utsurius/django-actionable-messages`\n\n`pip install django-actionable-messages`\n\nAdd \"django_actionable_messages\" to INSTALLED_APPS:\n\n```python\nINSTALLED_APPS = [\n ...\n \"django_actionable_messages\",\n]\n```\n\nSETTINGS\n\n```python\nACTIONABLE_MESSAGES = {\n \"JSON_ENCODER\": None,\n \"LANGUAGE_CODE\": \"en\"\n}\n```\n\n\"JSON_ENCODER\" - doted path to custom json encoder (default: BaseEncoder).\n\n\"LANGUAGE_CODE\" - language code used for translations (defaults to project settings.LANGUAGE_CODE). Each element of adaptive_card/message_card can set individual \"lang_code\".\n\n\n

Requirements

\n\n| Name | Version |\n|---------|------------|\n| python | 3.6 - 3.10 |\n| django | 3.2 - 4.2 |\n\n\n

Usage

\n\n**`examples/message_card/github.py`**\n\n```python\nfrom django_actionable_messages.message_card.actions import OpenUri, HttpPOST, ActionCard\nfrom django_actionable_messages.message_card.cards import MessageCard\nfrom django_actionable_messages.message_card.elements import Fact, ActionTarget\nfrom django_actionable_messages.message_card.inputs import TextInput\nfrom django_actionable_messages.message_card.sections import Section\nfrom django_actionable_messages.message_card.utils import OSType\n\n\nissue_opened = MessageCard(title=\"Issue opened: \\\"Push notifications not working\\\"\", summary=\"Issue 176715375\",\n theme_color=\"0078D7\")\nissue_opened.add_sections(\n Section(\n activity_title=\"Miguel Garcie\",\n activity_subtitle=\"9/13/2016, 11:46am\",\n activity_image=\"https://connectorsdemo.azurewebsites.net/images/MSC12_Oscar_002.jpg\",\n text=\"There is a problem with Push notifications, they don't seem to be picked up by the connector.\",\n facts=[\n Fact(\"Repository:\", \"mgarcia\\\\test\"),\n Fact(\"Issue #:\", \"176715375\")\n ]\n )\n)\nissue_opened.add_actions([\n ActionCard(\n name=\"Add a comment\",\n inputs=[\n TextInput(input_id=\"comment\", title=\"Enter a comment\", is_multiline=True)\n ],\n actions=[\n HttpPOST(\"OK\", target=\"http://...\")\n ]\n ),\n HttpPOST(\"Close\", target=\"http://...\"),\n OpenUri(name=\"View in Github\", targets=[\n ActionTarget(OSType.DEFAULT, \"http://...\")\n ])\n])\n```\n\n**`examples/adaptive_card/calendar_reminder.py`**\n\n```python\nfrom django_actionable_messages.adaptive_card.actions import Submit\nfrom django_actionable_messages.adaptive_card.cards import AdaptiveCard\nfrom django_actionable_messages.adaptive_card.elements import TextBlock\nfrom django_actionable_messages.adaptive_card.inputs import InputChoice, ChoiceSetInput\nfrom django_actionable_messages.adaptive_card.utils import SCHEMA, FontSize, FontWeight, SpacingStyle, ChoiceInputStyle\n\n\ncalendar_reminder = AdaptiveCard(version=\"1.0\", schema=SCHEMA)\ncalendar_reminder.set_speak(\"Your meeting about \\\"Adaptive Card design session\\\" is starting at 12:30pm\"\n \"Do you want to snooze or do you want to send a late notification to the attendees?\")\ncalendar_reminder.add_elements(TextBlock(\"Adaptive Card design session\", size=FontSize.LARGE, weight=FontWeight.BOLDER))\ncalendar_reminder.add_elements([\n TextBlock(\"Conf Room 112/3377 (10)\", is_subtle=True),\n TextBlock(\"12:30 PM - 1:30 PM\", is_subtle=True, spacing=SpacingStyle.NONE),\n TextBlock(\"Snooze for\")\n])\ncalendar_reminder.add_elements(ChoiceSetInput(\n item_id=\"snooze\", style=ChoiceInputStyle.COMPACT, value=\"5\", choices=[\n InputChoice(\"5 minutes\", \"5\"),\n InputChoice(\"15 minutes\", \"15\"),\n InputChoice(\"30 minutes\", \"30\")\n ]\n))\ncalendar_reminder.add_actions([\n Submit(title=\"Snooze\", data={\n \"x\": \"snooze\"\n }),\n Submit(title=\"I'll be late\", data={\n \"x\": \"late\"\n })\n])\n```\n\nFor more view **`examples`** folder\n\nTo get dictionary, json or html payload from card use:\n\n| Property | Type |\n|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|\n| .payload | *dict* (raw data) |\n| .json_payload | json string |\n| .html_payload | html string - can be used to send card via email ([docs](https://docs.microsoft.com/en-gb/outlook/actionable-messages/send-via-email)) |\n| .signed_html_payload | html string1 - can be used to send card via email ([docs](https://docs.microsoft.com/en-us/outlook/actionable-messages/security-requirements)) |\n\n\\[1\\] you must overwrite **get_signed_payload()** in AdaptiveCard/MessageCard to sign the payload!\n\n\nProblem: **'... is not JSON serializable'** - probably invalid argument type was used. Default json serializer can handle translated strings and everything that `DjangoJSONEncoder` can handle. \n\nSolution: [Better Python Object Serialization](https://hynek.me/articles/serialization/). Remember to ALWAYS inherit from EncoderMixin or BaseEncoder (`django_actionable_messages.encoders import EncoderMixin, BaseEncoder`)\n\nYou can set JSON_ENCODER (globally) in SETTINGS(ACTIONABLE_MESSAGES) or set it by card(json_encoder):\n\n```python\nfrom django_actionable_messages.adaptive_card.cards import AdaptiveCard\n\n\nclass MyAdaptiveCard(AdaptiveCard):\n json_encoder = \"path.to.my.encoder\"\n```\nor\n```python\nfrom django_actionable_messages.adaptive_card.cards import AdaptiveCard\n\n\nclass MyAdaptiveCard(AdaptiveCard):\n json_encoder = MyJSONEncoder\n```\n\nTo customize json dump you can overwrite `get_json_dump_kwargs()` in card (AdaptiveCard/MessageCard)\n\n```python\nfrom django_actionable_messages.adaptive_card.cards import AdaptiveCard\n\n\nclass MyAdaptiveCard(AdaptiveCard):\n def get_json_dump_kwargs(self):\n return {\n 'ensure_ascii': False,\n 'indent': 2\n }\n```\n\nSend MessageCard to msteams using webhooks and `requests` library:\n```python\nimport requests\n\n\nrequests.post(\n webhook_url,\n data=card.json_payload,\n headers={\n \"Content-Type\": \"application/json; charset=utf-8\"\n }\n)\n``` \n\nTo get/add `webhook_url` see here: [Get the Microsoft Teams webhook URL](https://learning.getpostman.com/docs/postman_pro/integrations/microsoft_teams/#get-the-microsoft-teams-webhook-url), [Create and add an outgoing webhook in Teams](https://support.office.com/en-ie/article/create-and-add-an-outgoing-webhook-in-teams-8e1a1648-982f-4511-b342-6d8492437207)\n\n

AdaptiveCard

\n\nSupported versions: **1.0 - 1.6**\n\n[Schema Explorer](https://adaptivecards.io/explorer/)\n\n\n

Elements

\n\n**src**: `from django_actionable_messages.adaptive_card.elements import ...`\n\n

TextBlock docs

\n\n| Argument name | Function | Property | Type |\n|----------------------|----------------------------|---------------------|--------------------------------------------------------|\n| **text** | - | text | *str, trans3* |\n| color | set_color() | color | Color1 |\n| font_type | set_font_type() | fontType | FontType1 |\n| horizontal_alignment | set_horizontal_alignment() | horizontalAlignment | HorizontalAlignment1 |\n| is_subtle | set_is_subtle() | isSubtle | *bool* |\n| max_lines | set_max_lines() | maxLines | *int* |\n| size | set_size() | size | FontSize1 |\n| weight | set_weight() | weight | FontWeight1 |\n| wrap | set_wrap() | wrap | *bool* |\n| fallback | set_fallback() | fallback | FallbackOption1 or card element2 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle1 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight1 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Image docs

\n\n| Argument name | Function | Property | Type |\n|----------------------|----------------------------|---------------------|--------------------------------------------------------|\n| **url** | set_url() | url | *str* |\n| alternate_text | set_alternate_text() | altText | *str* |\n| background_color | set_background_color() | backgroundColor | *str* |\n| height | set_height() | height | str or BlockElementHeight1 |\n| horizontal_alignment | set_horizontal_alignment() | horizontalAlignment | HorizontalAlignment1 |\n| select_action | set_select_action() | selectAction | see docs |\n| size | set_size() | size | ImageSize1 |\n| style | set_style() | style | ImageStyle1 |\n| width | set_width() | width | *str* |\n| fallback | set_fallback() | fallback | FallbackOption1 or card element2 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle1 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight1 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n

MediaSource docs

\n\n| Argument name | Property | Type |\n|---------------|----------|--------|\n| **mime_type** | mimeType | *str* |\n| **url** | url | *str* |\n\n

CaptionSource docs

\n\n| Argument name | Property | Type |\n|---------------|----------|--------|\n| **mime_type** | mimeType | *str* |\n| **url** | url | *str* |\n| **label** | label | *str* |\n\n

Media docs

\n\n| Argument name | Function | Property | Type |\n|----------------|----------------------|-----------|--------------------------------------------------------|\n| **sources** | - | sources | *list* of MediaSource(s)1 |\n| poster | set_poster() | poster | *str* |\n| alternate_text | set_alternate_text() | altText | *str* |\n| fallback | set_fallback() | fallback | FallbackOption2 or card element1 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle2 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight2 |\n| lang_code | - | - | *str* |\n\nOther functions\n\n| Name | Property | Type |\n|-----------------------|----------------|---------------------------|\n| add_sources() | sources | MediaSource1 |\n| add_source() | sources | MediaSource1 |\n| set_caption_sources() | captionSources | CaptionSource2 |\n| add_caption_sources() | captionSources | CaptionSource2 |\n| add_caption_source() | captionSources | CaptionSource2 |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n

TextRun docs

\n\n| Argument name | Function | Property | Type |\n|----------------|----------------------|---------------|---------------------------|\n| **text** | - | text | *str*, trans 2 |\n| color | set_color() | color | Color1 |\n| font_type | set_font_type() | fontType | FontType1 |\n| highlight | set_highlight() | highlight | *bool* |\n| is_subtle | set_is_subtle() | isSubtle | *bool* |\n| italic | set_italic() | italic | *bool* |\n| select_action | set_select_action() | selectAction | see docs |\n| size | set_size() | fontSize | FontSize1 |\n| strike_through | set_strike_through() | strikethrough | *bool* |\n| weight | set_weight() | fontWeight | FontWeight1 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

RichTextBlock docs

\n\n| Argument name | Function | Property | Type |\n|----------------------|----------------------------|---------------------|--------------------------------------------------------|\n| **inlines** | - | inlines | *str*, TextRun1, trans4 |\n| horizontal_alignment | set_horizontal_alignment() | horizontalAlignment | HorizontalAlignment2 |\n| fallback | set_fallback() | fallback | FallbackOption2 or card element1 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle2 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight2 |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n\\[4\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Inputs

\n\n**src**: `from django_actionable_messages.adaptive_card.inputs import ...`\n\n

TextInput docs

\n\n| Argument name | Function | Property | Type |\n|---------------|---------------------|--------------|---------------------------------------------------------|\n| is_multiline | set_is_multiline() | isMultiline | *bool* |\n| max_length | set_max_length() | maxLength | *int* |\n| placeholder | set_placeholder() | placeholder | *str*, trans3 |\n| style | set_style() | style | TextInputStyle1 |\n| inline_action | set_inline_action() | inlineAction | see docs |\n| value | set_value() | value | *str*, trans3 |\n| fallback | set_fallback() | fallback | FallbackOption1 or card element2 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle1 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight1 |\n| label | set_label() | label | *str*, TextBlock4, RichTextBlock4 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n\\[4\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n

NumberInput docs

\n\n| Argument name | Function | Property | Type |\n|---------------|-------------------|-------------|---------------------------------------------------------|\n| max_value | set_max_value() | maxValue | *int* |\n| min_value | set_min_value() | minValue | *int* |\n| placeholder | set_placeholder() | placeholder | *str*, trans3 |\n| value | set_value() | value | *int* |\n| fallback | set_fallback() | fallback | FallbackOption1 or card element2 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle1 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight1 |\n| label | set_label() | label | *str*, TextBlock4, RichTextBlock4 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n\\[4\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n

DateInput docs

\n\n| Argument name | Function | Property | Type |\n|---------------|-------------------|-------------|---------------------------------------------------------|\n| max_value | set_max_value() | maxValue | *str* |\n| min_value | set_min_value() | minValue | *str* |\n| placeholder | set_placeholder() | placeholder | *str*, trans3 |\n| value | set_value() | value | *str* |\n| fallback | set_fallback() | fallback | FallbackOption1 or card element2 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle1 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight1 |\n| label | set_label() | label | *str*, TextBlock4, RichTextBlock4 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n\\[4\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n

TimeInput docs

\n\n| Argument name | Function | Property | Type |\n|---------------|-------------------|-------------|---------------------------------------------------------|\n| max_value | set_max_value() | maxValue | *str* |\n| min_value | set_min_value() | minValue | *str* |\n| placeholder | set_placeholder() | placeholder | *str*, trans3 |\n| value | set_value() | value | *str* |\n| fallback | set_fallback() | fallback | FallbackOption1 or card element2 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle1 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight1 |\n| label | set_label() | label | *str*, TextBlock4, RichTextBlock4 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n\\[4\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n

ToggleInput docs

\n\n| Argument name | Function | Property | Type |\n|---------------|------------------|-----------|---------------------------------------------------------|\n| **title** | - | title | *str*, trans3 |\n| value | set_value() | value | *str* |\n| value_off | set_value_off() | valueOff | *str* |\n| value_on | set_value_on() | valueOn | *str* |\n| wrap | set_wrap() | wrap | *bool* |\n| fallback | set_fallback() | fallback | FallbackOption1 or card element2 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle1 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight1 |\n| label | set_label() | label | *str*, TextBlock4, RichTextBlock4 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n\\[4\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n

InputChoice docs

\n\n| Argument name | Property | Type |\n|---------------|----------|--------------------------|\n| **title** | title | *str*, trans1 |\n| **value** | value | *str*, *int* |\n| lang_code | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

ChoiceSetInput docs

\n\n| Argument name | Function | Property | Type |\n|-----------------|-----------------------|---------------|---------------------------------------------------------|\n| **choices** | - | choices | *list* of InputChoice(s)1 |\n| is_multi_select | set_is_multi_select() | isMultiSelect | *bool* |\n| style | set_style() | style | ChoiceInputStyle2 |\n| value | set_value() | value | *str* |\n| wrap | set_wrap() | wrap | *bool* |\n| fallback | set_fallback() | fallback | FallbackOption2 or card element3 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle2 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight2 |\n| label | set_label() | label | *str*, TextBlock4, RichTextBlock4 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.inputs import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n\\[4\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n

DataQuery docs

\n\n| Argument name | Function | Property | Type |\n|---------------|---------------|----------|-------|\n| **dataset** | set_dataset() | dataset | *str* |\n| count | set_count() | count | *int* |\n| skip | set_skip() | skip | *int* |\n\n\n

Actions

\n\n**src**: `from django_actionable_messages.adaptive_card.actions import ...`\n\n

OpenUrl docs

\n\n| Argument name | Function | Property | Type |\n|---------------|------------------|-----------|------------------------------------------------------------------------------------|\n| **url** | - | url | *str* |\n| title | set_title() | title | *str*, trans3 |\n| icon_url | set_icon_url() | iconUrl | *str* |\n| style | set_style() | style | ActionStyle2 |\n| item_id | set_id() | id | *str* |\n| fallback | set_fallback() | fallback | FallbackOption2 or action1(except TargetElement1) |\n| tooltip | set_tooltip() | tooltip | *str* |\n| is_enabled | set_is_enabled() | isEnabled | *bool* |\n| mode | set_mode() | mode | ActionMode2 |\n| requires | set_requires() | requires | *dict* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.actions import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Submit docs

\n\n| Argument name | Function | Property | Type |\n|---------------|------------------|-----------|------------------------------------------------------------------------------------|\n| data | set_data() | data | *str*, *dict* |\n| title | set_title() | title | *str*, trans3 |\n| icon_url | set_icon_url() | iconUrl | *str* |\n| style | set_style() | style | ActionStyle2 |\n| item_id | set_id() | id | *str* |\n| fallback | set_fallback() | fallback | FallbackOption2 or action1(except TargetElement1) |\n| tooltip | set_tooltip() | tooltip | *str* |\n| is_enabled | set_is_enabled() | isEnabled | *bool* |\n| mode | set_mode() | mode | ActionMode2 |\n| requires | set_requires() | requires | *dict* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.actions import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

ShowCard docs

\n\n| Argument name | Function | Property | Type |\n|---------------|------------------|-----------|------------------------------------------------------------------------------------|\n| card | set_card() | card | AdaptiveCard2 |\n| title | set_title() | title | *str*, trans4 |\n| icon_url | set_icon_url() | iconUrl | *str* |\n| style | set_style() | style | ActionStyle3 |\n| item_id | set_id() | id | *str* |\n| fallback | set_fallback() | fallback | FallbackOption3 or action1(except TargetElement1) |\n| tooltip | set_tooltip() | tooltip | *str* |\n| is_enabled | set_is_enabled() | isEnabled | *bool* |\n| mode | set_mode() | mode | ActionMode3 |\n| requires | set_requires() | requires | *dict* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.actions import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.cards import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[4\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

TargetElement docs

\n\n| Argument name | Function | Property | Type |\n|-----------------|------------------|------------|--------|\n| **element_id** | - | elementId | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n\n

ToggleVisibility docs

\n\n| Argument name | Function | Property | Type |\n|-----------------|-----------------------|----------------|------------------------------------------------------------------------------------|\n| target_elements | set_target_elements() | targetElements | *list* of TargetElement1/*str*/trans3 (can be mixed) |\n| title | set_title() | title | *str* |\n| icon_url | set_icon_url() | iconUrl | *str* |\n| style | set_style() | style | ActionStyle2 |\n| item_id | set_id() | id | *str* |\n| fallback | set_fallback() | fallback | FallbackOption1 or action1(except TargetElement1) |\n| tooltip | set_tooltip() | tooltip | *str* |\n| is_enabled | set_is_enabled() | isEnabled | *bool* |\n| mode | set_mode() | mode | ActionMode2 |\n| requires | set_requires() | requires | *dict* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.actions import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Execute docs

\n\n| Argument name | Function | Property | Type |\n|-------------------|-------------------------|------------------|------------------------------------------------------------------------------------|\n| verb | set_verb() | verb | *str* |\n| data | set_data() | data | *str*, object |\n| associated_inputs | set_associated_inputs() | associatedInputs | AssociatedInputs1 |\n| title | set_title() | title | *str* |\n| icon_url | set_icon_url() | iconUrl | *str* |\n| style | set_style() | style | ActionStyle1 |\n| fallback | set_fallback() | fallback | FallbackOption1 or action2(except TargetElement2) |\n| tooltip | set_tooltip() | tooltip | *str* |\n| is_enabled | set_is_enabled() | isEnabled | *bool* |\n| mode | set_mode() | mode | ActionMode1 |\n| requires | set_requires() | requires | *dict* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_card.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_card.actions import ...`\n\n

Containers

\n\n**src**: `from django_actionable_messages.adaptive_card.containers import ...`\n\n

ActionSet docs

\n\n| Argument name | Function | Property | Type |\n|---------------|------------------|-----------|--------------------------------------------------------|\n| actions | add_actions() | actions | action or *list* of actions(see docs) |\n| fallback | set_fallback() | fallback | FallbackOption1 or card element2 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle1 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight1 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n

Container docs

\n\n| Argument name | Function | Property | Type |\n|----------------------------|----------------------------------|--------------------------|--------------------------------------------------------|\n| items | add_items() | items | item or *list* of items(see docs) |\n| select_action | set_select_action() | selectAction | any action(see docs) |\n| style | set_style() | style | Style2 |\n| vertical_content_alignment | set_vertical_content_alignment() | verticalContentAlignment | VerticalAlignment2 |\n| bleed | set_bleed() | bleed | *bool* |\n| background_image | set_background_image() | backgroundImage | BackgroundImage1 |\n| min_height | set_min_height() | minHeight | *str* |\n| rtl | set_rtl() | rtl | *bool* |\n| fallback | set_fallback() | fallback | FallbackOption2 or card element3 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle2 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight2 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.types import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n

Column docs

\n\n| Argument name | Function | Property | Type |\n|----------------------------|----------------------------------|--------------------------|--------------------------------------------------|\n| items | add_items() | items | item or *list* of items(see docs) |\n| background_image | set_background_image() | backgroundImage | *str*, BackgroundImage2 |\n| bleed | set_bleed() | bleed | *bool* |\n| fallback | set_fallback() | fallback | FallbackOption3 or Column1 |\n| min_height | set_min_height() | minHeight | *str* |\n| rtl | set_rtl() | rtl | *bool* |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle3 |\n| select_action | set_select_action() | selectAction | see docs |\n| style | set_style() | style | Style3 |\n| vertical_content_alignment | set_vertical_content_alignment() | verticalContentAlignment | VerticalAlignment3 |\n| width | set_width() | width | *str*, *int*, Width3 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.containers import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.types import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n

ColumnSet docs

\n\n| Argument name | Function | Property | Type |\n|---------------|---------------------|--------------|--------------------------------------------------------|\n| **columns** | add_columns() | columns | Column1 or *list* of Column(s)1 |\n| select_action | set_select_action() | selectAction | see docs |\n| style | set_style() | style | Style2 |\n| bleed | set_bleed() | bleed | *bool* |\n| min_height | set_min_height() | minHeight | *str* |\n| fallback | set_fallback() | fallback | FallbackOption2 or card element3 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle2 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight2 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.containers import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n

Fact docs

\n\n| Argument name | Property | Type |\n|---------------|----------|--------------------------|\n| **title** | title | *str*, trans1 |\n| **value** | value | *str*, trans1 |\n| lang_code | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

FactSet docs

\n\n| Argument name | Function | Property | Type |\n|---------------|------------------|-----------|--------------------------------------------------------|\n| facts | add_facts() | facts | Fact1 or *list* of Fact(s)1 |\n| fallback | set_fallback() | fallback | FallbackOption2 or card element3 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle2 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight2 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.containers import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n

ImageSet docs

\n\n| Argument name | Function | Property | Type |\n|---------------|------------------|-----------|--------------------------------------------------------|\n| images | add_images() | images | Image1 or *list* of Image(s)1 |\n| image_size | set_image_size() | imageSize | ImageSize2 |\n| fallback | set_fallback() | fallback | FallbackOption2 or card element3 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle2 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| height | set_height() | height | BlockElementHeight2 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n| Type | All except | Import |\n|--------------|----------------------|------------------------------------------------------------------------|\n| `containers` | Fact, Column | `from django_actionable_messages.adaptive_cards.containers import ...` |\n| `elements` | MediaSource, TextRun | `from django_actionable_messages.adaptive_cards.elements import ...` |\n| `inputs` | InputChoice | `from django_actionable_messages.adaptive_cards.inputs import ...` |\n\n

TableCell docs

\n\n| Argument name | Function | Property | Type |\n|----------------------------|----------------------------------|--------------------------|----------------------------------------------------------------------------------------------|\n| select_action | set_select_action() | selectAction | Execute1, OpenUrl1, Submit1 or ToggleVisibility1 |\n| style | set_style() | style | Style2 |\n| vertical_content_alignment | set_vertical_content_alignment() | verticalContentAlignment | VerticalAlignment2 |\n| bleed | set_bleed() | bleed | *bool* |\n| background_image | set_background_image() | backgroundImage | BackgroundImage3 or *str* |\n| min_height | set_min_height() | minHeight | *str* |\n| rtl | set_rtl() | rtl | *bool* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.actions import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.types import ...`\n\n

TableRow

\n\n| Argument name | Function | Property | Type |\n|---------------|-------------|----------|-----------------------|\n| cells | add_cells() | cells | TableCell1 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.containers import ...`\n\n

Table docs

\n\n| Argument name | Function | Property | Type |\n|-----------------------------------|-----------------------------------------|--------------------------------|--------------------------------------------------------|\n| columns | add_columns() | columns | *dict* |\n| rows | add_rows() | rows | TableRow1 or *list* of TableRow1 |\n| horizontal_cell_content_alignment | set_horizontal_cell_content_alignment() | horizontalCellContentAlignment | HorizontalAlignment2 |\n| vertical_cell_content_alignment | set_vertical_cell_content_alignment() | verticalCellContentAlignment | VerticalAlignment2 |\n| first_row_as_header | set_first_row_as_header() | firstRowAsHeader | *bool* |\n| show_grid_lines | set_show_grid_lines() | showGridLines | *bool* |\n| grid_style | set_grid_style() | style | Style2 |\n| height | set_height() | height | BlockElementHeight2 |\n| fallback | set_fallback() | fallback | FallbackOption2 or card element3 |\n| separator | set_separator() | separator | *bool* |\n| spacing | set_spacing() | spacing | SpacingStyle2 |\n| item_id | set_id() | id | *str* |\n| is_visible | set_is_visible() | isVisible | *bool* |\n| requires | set_requires() | requires | *dict* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.containers import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n

Types

\n\n**src**: `from django_actionable_messages.adaptive_card.types import ...`\n\n

BackgroundImage docs

\n\n| Argument name | Function | Property | Type |\n|----------------------|----------------------------|---------------------|---------------------------------|\n| **url** | set_url() | url | *str* |\n| fill_mode | set_fill_mode() | fillMode | FillMode1 |\n| horizontal_alignment | set_horizontal_alignment() | horizontalAlignment | HorizontalAlignment1 |\n| vertical_alignment | set_vertical_alignment() | verticalAlignment | VerticalAlignment1 |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n

Refresh docs

\n\n| Argument name | Function | Property | Type |\n|---------------|----------------|----------|---------------------|\n| action | set_action() | action | Execute1 |\n| expires | set_expires() | expires | *str* (ISO-8601) |\n| user_ids | set_user_ids() | list | list of *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.actions import ...`\n\n

TokenExchangeResource docs

\n\n| Argument name | Function | Property | Type |\n|------------------|----------|-------------|--------|\n| **token_id** | - | id | *str* |\n| **uri** | - | uri | *str* |\n| **provider_id** | - | providerId | *str* |\n\n

AuthCardButton docs

\n\n| Argument name | Function | Property | Type |\n|---------------|-------------|----------|--------|\n| **btn_type** | - | type | *str* |\n| **value** | - | value | *str* |\n| title | set_title() | title | *str* |\n| image | set_image() | image | *str* |\n\n

Authentication docs

\n\n| Argument name | Function | Property | Type |\n|-------------------------|-------------------------------|-----------------------|--------------------------------------|\n| text | set_text() | text | *str* |\n| connection_name | set_connection_name() | connectionName | *str* |\n| token_exchange_resource | set_token_exchange_resource() | tokenExchangeResource | TokenExchangeResource1 |\n| buttons | set_buttons() | buttons | *list* of AuthCardButton1 |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.types import ...`\n\n

Metadata docs

\n\n| Argument name | Function | Property | Type |\n|---------------|-----------|----------|-------|\n| url | set_url() | webUrl | *str* |\n\n\n

Cards

\n\n**src**: `from django_actionable_messages.adaptive_card.cards import ...`\n\n

AdaptiveCard docs

\n\n| Argument name | Function | Property | Type |\n|----------------------------|----------------------------------|--------------------------|---------------------------------------|\n| version | set_version() | version | *str*, SCHEMA1 |\n| schema | set_schema() | $schema | *str* |\n| refresh | set_refresh() | refresh | Refresh3 |\n| authentication | set_authentication() | authentication | Authentication3 |\n| inputs | add_elements() | inputs | input or *list* of inputs(see docs) |\n| actions | add_actions() | actions | action or *list* of actions(see docs) |\n| select_action | set_select_action() | selectAction | see docs |\n| style | set_style() | style | Style1 |\n| hide_original_body | set_hide_original_body() | hideOriginalBody | *bool* |\n| fallback_text | set_fallback_text() | fallbackText | *str* |\n| background_image | set_background_image() | backgroundImage | *str*, Image2 |\n| metadata | set_metadata() | metadata | Metadata3 |\n| min_height | set_min_height() | minHeight | *str* |\n| speak | set_speak() | speak | *str* |\n| lang | set_lang() | lang | *str* |\n| rtl | set_rtl() | rtl | *bool* |\n| vertical_content_alignment | set_vertical_content_alignment() | verticalContentAlignment | VerticalAlignment1 |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.adaptive_cards.utils import ...`\n\n\\[2\\] `from django_actionable_messages.adaptive_cards.elements import ...`\n\n\\[3\\] `from django_actionable_messages.adaptive_cards.types import ...`\n\n

MessageCard

\n\n[Legacy actionable message card reference](https://docs.microsoft.com/en-gb/outlook/actionable-messages/message-card-reference)\n\n

Elements

\n\n**src**: `from django_actionable_messages.message_card.elements import ...`\n\n

Header docs

\n\n| Argument name | Property | Type |\n|---------------|----------|---------------|\n| **name** | name | *str* |\n| **value** | value | *str*, *int* |\n\n

**Fact**

\n\n| Argument name | Property | Type |\n|---------------|----------|--------------------------|\n| **name** | name | *str*, trans1 |\n| **value** | value | *str*, trans1 |\n| lang_code | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

HeroImage docs

\n\n| Argument name | Function | Property | Type |\n|---------------|-------------|----------|--------------------------|\n| **url** | - | image | *str* |\n| title | set_title() | title | *str*, trans1 |\n| lang_code | - | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

InputChoice

\n\n| Argument name | Property | Type |\n|---------------|----------|--------------------------|\n| **name** | display | *str*, trans1 |\n| **value** | value | *str*, *int* |\n| lang_code | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

ActionTarget

\n\n| Argument name | Property | Type |\n|---------------|----------|--------------------|\n| **os_type** | os | OSType1 |\n| url | uri | *str* |\n| lang_code | - | *str* |\n\n\\[1\\] `from django_actionable_messages.message_cards.utils import ...`\n\n

Inputs

\n\n**src**: `from django_actionable_messages.message_card.inputs import ...`\n\n

TextInput docs

\n\n| Argument name | Function | Property | Type |\n|---------------|--------------------|-------------|--------------------------|\n| max_length | set_max_length() | maxLength | *int* |\n| is_multiline | set_is_multiline() | isMultiline | *bool* |\n| input_id | set_id() | id | *str* |\n| title | set_title() | title | *str*, trans1 |\n| value | set_value() | value | *str* |\n| is_required | set_is_required() | isRequired | *bool* |\n| lang_code | - | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

DateInput docs

\n\n| Argument name | Function | Property | Type |\n|---------------|--------------------|------------|--------------------------|\n| include_time | set_include_time() | maxLength | *bool* |\n| input_id | set_id() | id | *str* |\n| title | set_title() | title | *str*, trans1 |\n| value | set_value() | value | *str* |\n| is_required | set_is_required() | isRequired | *bool* |\n| lang_code | - | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

MultiChoiceInput docs

\n\n| Argument name | Function | Property | Type |\n|-----------------|-----------------------|-----------------|--------------------------------------|\n| **choices** | add_choices() | choices | *list* of InputChoice(s)1 |\n| is_multi_select | set_is_multi_select() | isMultiSelect | *bool* |\n| style | set_style() | style | ChoiceStyle2 |\n| input_id | set_id() | id | *str* |\n| title | set_title() | title | *str*, trans3 |\n| value | set_value() | value | *str* |\n| is_required | set_is_required() | isRequired | *bool* |\n| lang_code | - | - | *str* |\n\nOther functions\n\n| Name | Property | Type |\n|---------------|----------|--------------------------|\n| add_choice() | choices | InputChoice1 |\n\n\\[1\\] `from django_actionable_messages.message_cards.inputs import ...`\n\n\\[2\\] `from django_actionable_messages.message_cards.utils import ...`\n\n\\[3\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Actions

\n\n**src**: `from django_actionable_messages.message_card.actions import ...`\n\n

OpenUri docs

\n\n| Argument name | Function | Property | Type |\n|---------------|---------------|----------|------------------------------------|\n| **name** | - | name | *str*, trans2 |\n| targets | add_targets() | targets | *list* of ActionTarget1 |\n| lang_code | - | - | *str* |\n\nOther functions\n\n| Name | Property | Type |\n|---------------|----------|--------------------------------------|\n| add_target() | targets | ActionTarget1 |\n| add_targets() | targets | **list** of ActionTarget1 |\n\n\\[1\\] `from django_actionable_messages.message_cards.elements import ...`\n\n\\[2\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

HttpPOST docs

\n\n| Argument name | Function | Property | Type |\n|--------------------|-------------------------|-----------------|-------------------------------------------------------|\n| **name** | - | name | *str*, trans2 |\n| **target** | - | targets | *str* |\n| headers | add_headers() | headers | Header1 or *list* of Header(s)1 |\n| body | set_body() | body | *str* |\n| body_content_type | set_body_content_type() | bodyContentType | *str* |\n| lang_code | - | - | *str* |\n\n\\[1\\] `from django_actionable_messages.message_cards.elements import ...`\n\n\\[2\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

InvokeAddInCommand docs

\n\n| Argument name | Function | Property | Type |\n|------------------------|----------------------------------|-----------------------|--------------------------|\n| **name** | - | name | *str*, trans1 |\n| **add_in_id** | set_add_in_id() | addInId | *str* |\n| **desktop_command_id** | set_desktop_command_id() | desktopCommandId | *str* |\n| initialization_context | set_set_initialization_context() | initializationContext | *dict* |\n| lang_code | - | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

ActionCard docs

\n\n| Argument name | Function | Property | Type |\n|---------------|---------------|----------|---------------------------------------|\n| **name** | - | name | *str*, trans1 |\n| inputs | add_inputs() | inputs | input or *list* of inputs(see docs) |\n| actions | add_actions() | actions | action or *list* of actions(see docs) |\n| lang_code | - | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Sections

\n\n**src**: `from django_actionable_messages.message_card.sections import ...`\n\n

Section docs

\n\n| Argument name | Function | Property | Type |\n|-------------------|-------------------------|------------------|---------------------------------------------------|\n| start_group | set_start_group() | startGroup | *bool* |\n| title | set_title() | title | *str*, trans2 |\n| text | set_text() | text | *str*, trans2 |\n| activity_image | set_activity_image() | activityImage | *str* |\n| activity_title | set_activity_title() | activityTitle | *str*, trans2 |\n| activity_subtitle | set_activity_subtitle() | activitySubtitle | *str*, trans2 |\n| activity_text | set_activity_text() | activityText | *str*, trans2 |\n| hero_image | set_hero_image() | heroImage | HeroImage2 |\n| facts | add_facts() | facts | Fact(s)1 or *list* of Fact1 |\n| actions | add_potential_actions() | potentialAction | action or *list* of actions(see docs) |\n| lang_code | - | - | *str* |\n\nOther functions:\n\n| Name | Property | Type |\n|--------------------------------------------|--------------------------------------------------------------|-------|\n| set_activity(image, title, subtitle, text) | activityImage, activityTitle, activitySubtitle, activityText | *str* |\n\n\\[1\\] `from django_actionable_messages.message_cards.elements import ...`\n\n\\[2\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Cards

\n\n**src**: `from django_actionable_messages.message_card.cards import ...`\n\n

MessageCard

\n\n| Argument name | Function | Property | Type |\n|----------------------|--------------------------|------------------|-------------------------------------------------------|\n| title | set_title() | title | *str*, trans2 |\n| text | set_text() | text | *str*, trans2 |\n| originator | set_originator() | originator | *str* |\n| summary | set_summary() | summary | *str*, trans2 |\n| theme_color | set_theme_color() | themeColor | *str* |\n| correlation_id | set_correlation_id() | correlationId | *str* |\n| auto_correlation_id* | - | correlationId | *bool* (default: *True*) |\n| expected_actors | set_expected_actors() | expectedActors | *list* of emails |\n| hide_original_body | set_hide_original_body() | hideOriginalBody | *bool* |\n| sections | add_sections() | sections | Section1 or *list* of Sections1 |\n| actions | add_actions() | potentialAction | action3 or *list* of actions3 |\n| lang_code | - | - | *str* |\n\nOther functions:\n\n| Name | Property | Type |\n|------------------------|-----------------|-------------------------|\n| add_expected_actors() | expectedActors | *str* or list of *str* |\n\n\\[1\\] `from django_actionable_messages.message_cards.sections import ...`\n\n\\[2\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n\\[3\\] `from django_actionable_messages.message_cards.actions import ...`\n\n

HeroCard

\n\n

Elements

\n\n

OpenUrl

\n\n| Argument name | Function | Property | Type |\n|---------------|----------|----------|--------------------------|\n| **title** | - | title | *str*, trans1 |\n| **url** | - | value | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Image

\n\n| Argument name | Function | Property | Type |\n|---------------|-----------|----------|---------------------------|\n| **url** | - | value | *str* |\n| alt | set_alt() | alt | *str*, trans1 |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n

Cards

\n\n**src**: `from django_actionable_messages.msteams_cards.cards import HeroCard`\n\n

HeroCard docs

\n\n| Argument name | Function | Property | Type |\n|---------------|----------------|----------|-------------------------------------------------------|\n| title | set_title() | title | *str*, trans1 |\n| subtitle | set_subtitle() | subtitle | *str*, trans1 |\n| text | set_text() | text | *str*, trans1 |\n| images | add_images() | images | Image2 or *list* of Images2 |\n| buttons | add_buttons() | buttons | OpenUrl3 or *list* of OpenUrls3 |\n| lang_code | - | - | *str* |\n\n\\[1\\] any translation like `from django.utils.translation import gettext, gettext_lazy, ...`\n\n\\[2\\] `from django_actionable_messages.msteams_cards.elements import Image`\n\n\\[3\\] `from django_actionable_messages.msteams_cards.elements import OpenUrl`\n\n

ThumbnailCard

\n\n

Elements

\n\nsee HeroCard [Elements](#herocard-elements) section\n\n

Cards

\n\n**src**: `from django_actionable_messages.msteams_cards.cards import ThumbnailCard`\n\n

ThumbnailCard docs

\n\nsee HeroCard [HeroCard](#herocard-herocard) section\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/utsurius/django-actionable-messages", "keywords": "msteams,AdaptiveCard,MessageCard,HeroCard,ThumbnailCard,actionable messages", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-actionable-messages", "package_url": "https://pypi.org/project/django-actionable-messages/", "platform": null, "project_url": "https://pypi.org/project/django-actionable-messages/", "project_urls": { "Documentation": "https://github.com/utsurius/django-actionable-messages/blob/master/README.md", "Homepage": "https://github.com/utsurius/django-actionable-messages", "Source": "https://github.com/utsurius/django-actionable-messages", "Tracker": "https://github.com/utsurius/django-actionable-messages/issues" }, "release_url": "https://pypi.org/project/django-actionable-messages/0.2.7/", "requires_dist": [ "django >=3.2.0" ], "requires_python": ">=3.6", "summary": "Actionable messages", "version": "0.2.7", "yanked": false, "yanked_reason": null }, "last_serial": 20691470, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "blake2b_256": "84db76bfc75460c90d02d737b0c170975a5bf6f2107b37c962856baff693c732", "md5": "cf7285db51e24e17bf01e31545f244b7", "sha256": "0572f64f00ac77219ebdbf7ef54137e9bae94424802d60c1b188ff7b2627fd96" }, "downloads": -1, "filename": "django_actionable_messages-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cf7285db51e24e17bf01e31545f244b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 24732, "upload_time": "2019-10-02T19:20:43", "upload_time_iso_8601": "2019-10-02T19:20:43.175856Z", "url": "https://files.pythonhosted.org/packages/84/db/76bfc75460c90d02d737b0c170975a5bf6f2107b37c962856baff693c732/django_actionable_messages-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "16a34e763d645456035564c1cace37909698ddeedc5d606bd7ccf7f5962f817c", "md5": "a818343966949752d7d6734f12047a6b", "sha256": "a8a20d5453b9a2aa3a26d6f494dc54b60575ed3b84ea293043a9b003d7c32304" }, "downloads": -1, "filename": "django_actionable_messages-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a818343966949752d7d6734f12047a6b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 28991, "upload_time": "2019-10-02T19:20:47", "upload_time_iso_8601": "2019-10-02T19:20:47.627098Z", "url": "https://files.pythonhosted.org/packages/16/a3/4e763d645456035564c1cace37909698ddeedc5d606bd7ccf7f5962f817c/django_actionable_messages-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "blake2b_256": "7fdb0a1087e228d04ad472d0797f2890c746aebf924e03a86d6595ef04828aeb", "md5": "de2bc2b1a78c54fea425e6c97a1f238a", "sha256": "a7906f751c7b6f13ee17bd47bab278ce880bfcf5b606fa63fca037eca3c47630" }, "downloads": -1, "filename": "django_actionable_messages-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "de2bc2b1a78c54fea425e6c97a1f238a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 24731, "upload_time": "2019-10-02T19:28:02", "upload_time_iso_8601": "2019-10-02T19:28:02.114795Z", "url": "https://files.pythonhosted.org/packages/7f/db/0a1087e228d04ad472d0797f2890c746aebf924e03a86d6595ef04828aeb/django_actionable_messages-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "a80b96baea1ddca1e7227a2ebe1672e2884ec4ed1d7e0fab6f7ba2c00ee52c81", "md5": "23007175a6d3d6e90f9d32bfb85c3b3f", "sha256": "e90d020c912e81535fb08e68b29aec08d1d8d3e265a8e8ade0b8feb4208408a9" }, "downloads": -1, "filename": "django_actionable_messages-0.1.1.tar.gz", "has_sig": false, "md5_digest": "23007175a6d3d6e90f9d32bfb85c3b3f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 29001, "upload_time": "2019-10-02T19:28:04", "upload_time_iso_8601": "2019-10-02T19:28:04.664154Z", "url": "https://files.pythonhosted.org/packages/a8/0b/96baea1ddca1e7227a2ebe1672e2884ec4ed1d7e0fab6f7ba2c00ee52c81/django_actionable_messages-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "blake2b_256": "4144c477e6a7ae750d1f4c56ade04becf76573804068ea0521a01dd15fb349ab", "md5": "590e88be7715be4f6b16dabcd04202bb", "sha256": "30514711ffd941b4831fef566f78af60f90e159243b99e6d657701c87c079c38" }, "downloads": -1, "filename": "django_actionable_messages-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "590e88be7715be4f6b16dabcd04202bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 25083, "upload_time": "2019-10-15T14:37:10", "upload_time_iso_8601": "2019-10-15T14:37:10.298423Z", "url": "https://files.pythonhosted.org/packages/41/44/c477e6a7ae750d1f4c56ade04becf76573804068ea0521a01dd15fb349ab/django_actionable_messages-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "f53d9fc650c0ac4c00aa659ec86ed14b9278f530ce057b0fad025771acfcd3aa", "md5": "1c31eea95e372d41cd65c930dc4bbe80", "sha256": "c3e1e3899bcd4015ef052bbcf633087a6d3b5b4bde8a17750aaea22cb9fabf7e" }, "downloads": -1, "filename": "django_actionable_messages-0.1.2.tar.gz", "has_sig": false, "md5_digest": "1c31eea95e372d41cd65c930dc4bbe80", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 30076, "upload_time": "2019-10-15T14:37:13", "upload_time_iso_8601": "2019-10-15T14:37:13.366784Z", "url": "https://files.pythonhosted.org/packages/f5/3d/9fc650c0ac4c00aa659ec86ed14b9278f530ce057b0fad025771acfcd3aa/django_actionable_messages-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "blake2b_256": "0d4510fb20437d546c9eab6c67885b9af65ed795ab71e31d5cf3ee8339751704", "md5": "c7bf5a283d1acf56489cd47f97db8fe8", "sha256": "b8813d3c05d79c29ad1145cf129029834f004b74c25de831c536dc9afccdfebd" }, "downloads": -1, "filename": "django_actionable_messages-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c7bf5a283d1acf56489cd47f97db8fe8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 25095, "upload_time": "2019-12-30T18:57:45", "upload_time_iso_8601": "2019-12-30T18:57:45.404508Z", "url": "https://files.pythonhosted.org/packages/0d/45/10fb20437d546c9eab6c67885b9af65ed795ab71e31d5cf3ee8339751704/django_actionable_messages-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "4c97bc465c8b7988edc855a3fd4706eebaa8dc9ab7951cdcaee0c6ddfcca373c", "md5": "edd087331709fc3d8492ddaa5063eccb", "sha256": "27ba066750fc9ba2a36c3cde43d15083a9cd72fd635a7c4c3b8ba1822806d8b8" }, "downloads": -1, "filename": "django_actionable_messages-0.1.3.tar.gz", "has_sig": false, "md5_digest": "edd087331709fc3d8492ddaa5063eccb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 30073, "upload_time": "2019-12-30T18:57:48", "upload_time_iso_8601": "2019-12-30T18:57:48.002201Z", "url": "https://files.pythonhosted.org/packages/4c/97/bc465c8b7988edc855a3fd4706eebaa8dc9ab7951cdcaee0c6ddfcca373c/django_actionable_messages-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "blake2b_256": "9e0ece3d65906b658dbfe29108715ab70bb7c790342b1c6860ca42836e7087ae", "md5": "8708449baacf891a52d12c1aa105157c", "sha256": "2fda136b5ecc430b6db7a90aac6bea715321846c0211e1ad0e288e8f86112ac4" }, "downloads": -1, "filename": "django_actionable_messages-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8708449baacf891a52d12c1aa105157c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 26320, "upload_time": "2020-03-25T15:15:23", "upload_time_iso_8601": "2020-03-25T15:15:23.146782Z", "url": "https://files.pythonhosted.org/packages/9e/0e/ce3d65906b658dbfe29108715ab70bb7c790342b1c6860ca42836e7087ae/django_actionable_messages-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "17fb28a84c5e2ad54b399ab498e0ff9cff21b2057b41d836f2f34858005ba305", "md5": "b3e8f4d1dc68ceff0dd57ca8fde8a650", "sha256": "f42b9dd87cf061f804537d798bb7512f07d098cfba2b7c54496a6de2ddfe4c1f" }, "downloads": -1, "filename": "django_actionable_messages-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b3e8f4d1dc68ceff0dd57ca8fde8a650", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31385, "upload_time": "2020-03-25T15:15:25", "upload_time_iso_8601": "2020-03-25T15:15:25.770775Z", "url": "https://files.pythonhosted.org/packages/17/fb/28a84c5e2ad54b399ab498e0ff9cff21b2057b41d836f2f34858005ba305/django_actionable_messages-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "blake2b_256": "3ca282c8aec8c444385a8d867900c63834b1a4a82654b49b7be11834ed43c3de", "md5": "c625bfcfb3ee6701eece623b8b747dfb", "sha256": "f6bacc3007883c6fa8798bf460d0ef263c9ed91109da34823f4dceabdc163756" }, "downloads": -1, "filename": "django_actionable_messages-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c625bfcfb3ee6701eece623b8b747dfb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 26954, "upload_time": "2020-03-26T16:39:43", "upload_time_iso_8601": "2020-03-26T16:39:43.739206Z", "url": "https://files.pythonhosted.org/packages/3c/a2/82c8aec8c444385a8d867900c63834b1a4a82654b49b7be11834ed43c3de/django_actionable_messages-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "91954834256279f55bd6162496eea6cef20d6f382e222d33e5cd609e10558d1d", "md5": "85b55d68da8f920606399cc2b2b87325", "sha256": "f6beb9b00523d46ed1b1ca6ed8ed151317ac85ae3f9fe6d328a71997b4a5ef67" }, "downloads": -1, "filename": "django_actionable_messages-0.2.1.tar.gz", "has_sig": false, "md5_digest": "85b55d68da8f920606399cc2b2b87325", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31996, "upload_time": "2020-03-26T16:39:45", "upload_time_iso_8601": "2020-03-26T16:39:45.870954Z", "url": "https://files.pythonhosted.org/packages/91/95/4834256279f55bd6162496eea6cef20d6f382e222d33e5cd609e10558d1d/django_actionable_messages-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "blake2b_256": "4955474e9726cbd3ca64ce21d119e51ea72115ba17bf8f71a998e8a7ae141a4b", "md5": "2479f49742a75e691f3147168bf85719", "sha256": "c58801b0be2914d3d7a19517818b2c2fca0e028f19b33ae5c75b274bfd5ff28a" }, "downloads": -1, "filename": "django_actionable_messages-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2479f49742a75e691f3147168bf85719", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27112, "upload_time": "2020-03-28T14:52:08", "upload_time_iso_8601": "2020-03-28T14:52:08.603979Z", "url": "https://files.pythonhosted.org/packages/49/55/474e9726cbd3ca64ce21d119e51ea72115ba17bf8f71a998e8a7ae141a4b/django_actionable_messages-0.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "b5d0e1dc912dfd7e71dbb8fbd1052a6c00ba0b9c52b2bc21cab6de0575bb97f5", "md5": "829d043c6f91c96b7d75ae21051604b2", "sha256": "eba6a2726754579c31b2dd5944d8d37cf1f2caf57488c67ea418a7eff3d98ba9" }, "downloads": -1, "filename": "django_actionable_messages-0.2.2.tar.gz", "has_sig": false, "md5_digest": "829d043c6f91c96b7d75ae21051604b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32474, "upload_time": "2020-03-28T14:52:10", "upload_time_iso_8601": "2020-03-28T14:52:10.930552Z", "url": "https://files.pythonhosted.org/packages/b5/d0/e1dc912dfd7e71dbb8fbd1052a6c00ba0b9c52b2bc21cab6de0575bb97f5/django_actionable_messages-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "blake2b_256": "ce7e761ad140e3a81784a8a8d48c26a690f8a63882731b8e7777af894437aea8", "md5": "d4cd4bf8db034b3b5617770db7bc4d8e", "sha256": "ab82adc89dd1e9bd552970c42df28094fc115e1845101945d9d26cc3a509c031" }, "downloads": -1, "filename": "django_actionable_messages-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d4cd4bf8db034b3b5617770db7bc4d8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 32544, "upload_time": "2020-03-30T19:48:09", "upload_time_iso_8601": "2020-03-30T19:48:09.975145Z", "url": "https://files.pythonhosted.org/packages/ce/7e/761ad140e3a81784a8a8d48c26a690f8a63882731b8e7777af894437aea8/django_actionable_messages-0.2.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "6c547f7b747195746ff98ce7dbb44345b85b1f076a18f2e0fd72a0529c645af1", "md5": "22671be9137f69a3fb283afd82a574d4", "sha256": "21b5a3da1fc9c85d154c7a92685b65e5a4eb32e60239ffd14fa26890fb4c30c8" }, "downloads": -1, "filename": "django_actionable_messages-0.2.3.tar.gz", "has_sig": false, "md5_digest": "22671be9137f69a3fb283afd82a574d4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 34842, "upload_time": "2020-03-30T19:48:12", "upload_time_iso_8601": "2020-03-30T19:48:12.534573Z", "url": "https://files.pythonhosted.org/packages/6c/54/7f7b747195746ff98ce7dbb44345b85b1f076a18f2e0fd72a0529c645af1/django_actionable_messages-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.4": [ { "comment_text": "", "digests": { "blake2b_256": "7907e01c66aa11ea95ca7cff6d4a73f881eccc8b818c066663f54b14c9e9c9e9", "md5": "658e1d52be880d5cc4fe9c1c08e5ccf5", "sha256": "3df531dcce0dfe640b0d15ba016d32324b16af9a434ee3408c246d5183e06620" }, "downloads": -1, "filename": "django_actionable_messages-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "658e1d52be880d5cc4fe9c1c08e5ccf5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 32663, "upload_time": "2020-07-10T16:59:51", "upload_time_iso_8601": "2020-07-10T16:59:51.406452Z", "url": "https://files.pythonhosted.org/packages/79/07/e01c66aa11ea95ca7cff6d4a73f881eccc8b818c066663f54b14c9e9c9e9/django_actionable_messages-0.2.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "109004977517f1ae3c78a1084467db64a5a83e266e156fcaca0eb8c25e682300", "md5": "6d2bfb095ecae99a0f8f098bfd6d1e51", "sha256": "3961560848b1e9cb1377800aedaae70e72e1b74174b5264adbb9626dce90366c" }, "downloads": -1, "filename": "django_actionable_messages-0.2.4.tar.gz", "has_sig": false, "md5_digest": "6d2bfb095ecae99a0f8f098bfd6d1e51", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 35082, "upload_time": "2020-07-10T16:59:53", "upload_time_iso_8601": "2020-07-10T16:59:53.545511Z", "url": "https://files.pythonhosted.org/packages/10/90/04977517f1ae3c78a1084467db64a5a83e266e156fcaca0eb8c25e682300/django_actionable_messages-0.2.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.5": [ { "comment_text": "", "digests": { "blake2b_256": "9a7c8892de7e2c4bd9e1e0b3ebf2dc97688dd013f8b1ad7a5f129c9594693689", "md5": "8a5b3ba3dbec13da0aa19246a8168769", "sha256": "3390f4bd7c9be909f716790be2a24f55810ebfaa4e5431ddb0415354a7dc391f" }, "downloads": -1, "filename": "django_actionable_messages-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "8a5b3ba3dbec13da0aa19246a8168769", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 34241, "upload_time": "2021-12-26T09:54:12", "upload_time_iso_8601": "2021-12-26T09:54:12.826707Z", "url": "https://files.pythonhosted.org/packages/9a/7c/8892de7e2c4bd9e1e0b3ebf2dc97688dd013f8b1ad7a5f129c9594693689/django_actionable_messages-0.2.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "6667517d7160e01ee07b605c29c7944f9909a071e77350a4cd1a6fa3e57d445a", "md5": "b1d1318bc77fad2c44587751285163c8", "sha256": "1a95ac2c9780a6e4f16f9304493ddc1d40dbf5ff170350ddbeb960821d7d676f" }, "downloads": -1, "filename": "django_actionable_messages-0.2.5.tar.gz", "has_sig": false, "md5_digest": "b1d1318bc77fad2c44587751285163c8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 38158, "upload_time": "2021-12-26T09:54:15", "upload_time_iso_8601": "2021-12-26T09:54:15.270157Z", "url": "https://files.pythonhosted.org/packages/66/67/517d7160e01ee07b605c29c7944f9909a071e77350a4cd1a6fa3e57d445a/django_actionable_messages-0.2.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.6": [ { "comment_text": "", "digests": { "blake2b_256": "86ea1a71edba95a2f941c008890ec8449e7c490bb73f95a8f7664edea5627cd6", "md5": "81927c147681c6a1869f790f3c7160e5", "sha256": "4c7557a968000af2381e7abbd3c05c95cee182513b5efcd5a715fdf443071b2e" }, "downloads": -1, "filename": "django_actionable_messages-0.2.6-py3-none-any.whl", "has_sig": false, "md5_digest": "81927c147681c6a1869f790f3c7160e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 38529, "upload_time": "2022-07-02T10:17:30", "upload_time_iso_8601": "2022-07-02T10:17:30.400348Z", "url": "https://files.pythonhosted.org/packages/86/ea/1a71edba95a2f941c008890ec8449e7c490bb73f95a8f7664edea5627cd6/django_actionable_messages-0.2.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "b200dfe681b7e9cf9905816cdcadb881db01bbd61a664fab6ee7a39717460051", "md5": "2f78a8fc2fc1a8a7100ca7aac2879391", "sha256": "d7805cb6ba7091d92e98542a1d0064be268d96415ac21009582129e39b61d732" }, "downloads": -1, "filename": "django_actionable_messages-0.2.6.tar.gz", "has_sig": false, "md5_digest": "2f78a8fc2fc1a8a7100ca7aac2879391", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 49166, "upload_time": "2022-07-02T10:17:34", "upload_time_iso_8601": "2022-07-02T10:17:34.047330Z", "url": "https://files.pythonhosted.org/packages/b2/00/dfe681b7e9cf9905816cdcadb881db01bbd61a664fab6ee7a39717460051/django_actionable_messages-0.2.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.6.1": [ { "comment_text": "", "digests": { "blake2b_256": "821e4465fd6fbe29cb8f7862a9e5232c38602f6ada1edd057646507c536bfe5a", "md5": "4b63ac8f709c25b87a03b7a3eeee1d47", "sha256": "932953ab4499a13cb45f2c742e7cc96ac8befc580676b78152172adf201666da" }, "downloads": -1, "filename": "django_actionable_messages-0.2.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4b63ac8f709c25b87a03b7a3eeee1d47", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 38580, "upload_time": "2022-07-03T12:56:52", "upload_time_iso_8601": "2022-07-03T12:56:52.098880Z", "url": "https://files.pythonhosted.org/packages/82/1e/4465fd6fbe29cb8f7862a9e5232c38602f6ada1edd057646507c536bfe5a/django_actionable_messages-0.2.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "e5d29e2815d39bf837497b9e7cf816285548522ed31e8dc0bf947ac251f9ed9c", "md5": "26af412740597860fe61870623299218", "sha256": "d9fa4a43e7bccc16c720652d3ea2931446b26b0861e5ee151dd2c419b8d3a88b" }, "downloads": -1, "filename": "django_actionable_messages-0.2.6.1.tar.gz", "has_sig": false, "md5_digest": "26af412740597860fe61870623299218", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 49218, "upload_time": "2022-07-03T12:56:55", "upload_time_iso_8601": "2022-07-03T12:56:55.445737Z", "url": "https://files.pythonhosted.org/packages/e5/d2/9e2815d39bf837497b9e7cf816285548522ed31e8dc0bf947ac251f9ed9c/django_actionable_messages-0.2.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.7": [ { "comment_text": "", "digests": { "blake2b_256": "7acdf7d27fb5b87ef4d6dcde94090a46daf4c047eafc4b6d71c3887cc0cb1c00", "md5": "879eb5706d3e68f673c7b50c9664efb4", "sha256": "8d91c2b950dcd7720d48b8d46c44c5ab88e4bb41d7e4bcc0b6a5bb3dfed132fa" }, "downloads": -1, "filename": "django_actionable_messages-0.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "879eb5706d3e68f673c7b50c9664efb4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 39036, "upload_time": "2023-11-18T08:25:07", "upload_time_iso_8601": "2023-11-18T08:25:07.129718Z", "url": "https://files.pythonhosted.org/packages/7a/cd/f7d27fb5b87ef4d6dcde94090a46daf4c047eafc4b6d71c3887cc0cb1c00/django_actionable_messages-0.2.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "22890e8044bfc0378c969489beb6275a52075f5c40f9938ab30a91ced7fa237c", "md5": "516962fde71e1cc73034bc178923d69c", "sha256": "9e7a6bcdf7ced879754780369c8048717e7bdb8ac1896750f9888d9614306a17" }, "downloads": -1, "filename": "django_actionable_messages-0.2.7.tar.gz", "has_sig": false, "md5_digest": "516962fde71e1cc73034bc178923d69c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 50171, "upload_time": "2023-11-18T08:25:09", "upload_time_iso_8601": "2023-11-18T08:25:09.320094Z", "url": "https://files.pythonhosted.org/packages/22/89/0e8044bfc0378c969489beb6275a52075f5c40f9938ab30a91ced7fa237c/django_actionable_messages-0.2.7.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "blake2b_256": "7acdf7d27fb5b87ef4d6dcde94090a46daf4c047eafc4b6d71c3887cc0cb1c00", "md5": "879eb5706d3e68f673c7b50c9664efb4", "sha256": "8d91c2b950dcd7720d48b8d46c44c5ab88e4bb41d7e4bcc0b6a5bb3dfed132fa" }, "downloads": -1, "filename": "django_actionable_messages-0.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "879eb5706d3e68f673c7b50c9664efb4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 39036, "upload_time": "2023-11-18T08:25:07", "upload_time_iso_8601": "2023-11-18T08:25:07.129718Z", "url": "https://files.pythonhosted.org/packages/7a/cd/f7d27fb5b87ef4d6dcde94090a46daf4c047eafc4b6d71c3887cc0cb1c00/django_actionable_messages-0.2.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "22890e8044bfc0378c969489beb6275a52075f5c40f9938ab30a91ced7fa237c", "md5": "516962fde71e1cc73034bc178923d69c", "sha256": "9e7a6bcdf7ced879754780369c8048717e7bdb8ac1896750f9888d9614306a17" }, "downloads": -1, "filename": "django_actionable_messages-0.2.7.tar.gz", "has_sig": false, "md5_digest": "516962fde71e1cc73034bc178923d69c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 50171, "upload_time": "2023-11-18T08:25:09", "upload_time_iso_8601": "2023-11-18T08:25:09.320094Z", "url": "https://files.pythonhosted.org/packages/22/89/0e8044bfc0378c969489beb6275a52075f5c40f9938ab30a91ced7fa237c/django_actionable_messages-0.2.7.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }