django-ctct 0.0.1.dev3__tar.gz → 0.0.1.dev5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,20 +1,22 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: django-ctct
3
- Version: 0.0.1.dev3
3
+ Version: 0.0.1.dev5
4
4
  Summary: A Django interface for the Constant Contact API
5
5
  License: MIT
6
+ License-File: LICENSE
6
7
  Author: Geoffrey Eisenbarth
7
8
  Author-email: geoffrey.eisenbarth@gmail.com
8
- Requires-Python: >=3.9
9
+ Requires-Python: >=3.10
9
10
  Classifier: License :: OSI Approved :: MIT License
10
11
  Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.9
12
12
  Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
16
17
  Requires-Dist: django (>=3.2.0,<6.0.0)
17
- Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
18
+ Requires-Dist: mypy (>=1.19.0,<2.0.0)
19
+ Requires-Dist: pyjwt[crypto] (>=2.10.1,<3.0.0)
18
20
  Requires-Dist: ratelimit (>=2.2.1,<3.0.0)
19
21
  Requires-Dist: requests (>=2.32.3,<3.0.0)
20
22
  Requires-Dist: tqdm (>=4.67.1,<5.0.0)
@@ -26,7 +28,9 @@ Description-Content-Type: text/markdown
26
28
 
27
29
  This Django app provides a seamless interface to the Constant Contact API, allowing you to manage contacts, email campaigns, and other Constant Contact functionalities directly from your Django project.
28
30
 
29
- **Warning:** This package is under active development. While it is our intention to develop with a consistent API going forward, we will not make promises until a later version is released.
31
+ **Warning:** This package is under active development.
32
+ While it is our intention to develop with a consistent API going forward, we will not make promises until a later version is released.
33
+
30
34
 
31
35
  ## Installation
32
36
 
@@ -34,6 +38,7 @@ This Django app provides a seamless interface to the Constant Contact API, allow
34
38
  pip install django-ctct
35
39
  ```
36
40
 
41
+
37
42
  ## Configuration
38
43
 
39
44
  1) **Add to `INSTALLED_APPS`:**
@@ -62,6 +67,7 @@ urlpatterns = [
62
67
  # ... other URL patterns
63
68
  ]
64
69
  ```
70
+
65
71
  3) **ConstantContact API Credentials:**
66
72
 
67
73
  Head to https://app.constantcontact.com/pages/dma/portal/ to set up your application with ConstantContact.
@@ -111,6 +117,7 @@ CTCT_SYNC_ADMIN = False # Django admin CRUD operations will sync with ctct
111
117
  * `CTCT_PREVIEW_MESSAGE` will be blank by default.
112
118
 
113
119
  3) **Run Migrations:**
120
+
114
121
  ```bash
115
122
  > ./manage.py makemigrations
116
123
  > ./manage.py migrate
@@ -119,9 +126,10 @@ CTCT_SYNC_ADMIN = False # Django admin CRUD operations will sync with ctct
119
126
  4) **Create Authenticatin Token:**
120
127
 
121
128
  After the app has been installed and configured, you must generate your first auth token:
122
- * Open up the `CTCT_REDIRECT_URI` address in your browser
123
- * Use your ConstantContact credentials to log in
124
- * From this point forward `django-ctct` should use refresh tokens, so no need to manually log in again
129
+
130
+ * Open up the `CTCT_REDIRECT_URI` address in your browser
131
+ * Use your ConstantContact credentials to log in
132
+ * From this point forward `django-ctct` should use refresh tokens, so no need to manually log in again
125
133
 
126
134
 
127
135
  ## Usage
@@ -131,12 +139,16 @@ If you wish to import data from ConstantContact.com into your local database (re
131
139
  > ./manage.py import_ctct
132
140
  ```
133
141
 
134
- You will be asked before each model type is imported. **Note** ConstantContact does not provide a bulk API endpoint for fetching Campaign Activities, so depending on the size of your account, this might take some time and possible put you over their 10,000 request per day limit if you run it regularly.
142
+ You will be asked before each model type is imported.
143
+ **Note** ConstantContact does not provide a bulk API endpoint for fetching Campaign Activities, so depending on the size of your account, this might take some time and possible put you over their 10,000 request per day limit if you run it regularly.
135
144
 
136
- Since ConstantContact does not offer any webhooks, you will need to set up a cron job if you want your account to remain syncronized with ConstantContact's database. You can use the `--no-input` flag to bypass the interactive questions. The `--stats-only` flag is useful for running a cron job to keep EmailCampaign statistics updated.
145
+ Since ConstantContact does not offer any webhooks, you will need to set up a cron job if you want your account to remain syncronized with ConstantContact's database.
146
+ You can use the `--no-input` flag to bypass the interactive questions.
147
+ The `--stats-only` flag is useful for running a cron job to keep EmailCampaign statistics updated.
137
148
 
138
149
  If you wish to use the Django admin to interact with ConstantContact, you must explicitly set the `CTCT_USE_ADMIN` and `CTCT_SYNC_ADMIN` settings to `True`.
139
150
 
151
+
140
152
  ## Testing
141
153
 
142
154
  To install dev dependencies:
@@ -156,13 +168,16 @@ To run tests:
156
168
  > poetry run coverage report
157
169
  ```
158
170
 
171
+
159
172
  ## Contributing
160
173
 
161
174
  Once version 0.0.1 is released on PyPI, we hope to implement the following new features (in no particular order):
162
175
 
163
- * Support for API syncing using signals (`post_save`, `pre_delete`, `m2m_changed`, etc). This will be controlled by the `CTCT_SYNC_SIGNALS` setting. **Update** This probably won't work as desired since the primary object will be saved before related objects are.
164
- * Background task support using `django-tasks` (which hopefully will merge into Django). This will be controlled by the `CTCT_ENQUEUE_DEFAULT` setting.
165
- * Add `models.CheckConstraint` and `models.UniqueConstraint` constraints that are currently commented out.
176
+ * Support for API syncing using signals (`post_save`, `pre_delete`, `m2m_changed`, etc).
177
+ This will be controlled by the `CTCT_SYNC_SIGNALS` setting.
178
+ **Update** This probably won't work as desired since the primary object will be saved before related objects are.
179
+ * Background task support using `django-tasks` (which hopefully will merge into Django). This will be controlled by the `CTCT_ENQUEUE_DEFAULT` setting.
180
+ * Add `models.CheckConstraint` and `models.UniqueConstraint` constraints that are currently commented out.
166
181
 
167
182
 
168
183
  I'm always open to new suggestions, so please reach out on GitHub: https://github.com/geoffrey-eisenbarth/django-ctct/
@@ -4,7 +4,9 @@
4
4
 
5
5
  This Django app provides a seamless interface to the Constant Contact API, allowing you to manage contacts, email campaigns, and other Constant Contact functionalities directly from your Django project.
6
6
 
7
- **Warning:** This package is under active development. While it is our intention to develop with a consistent API going forward, we will not make promises until a later version is released.
7
+ **Warning:** This package is under active development.
8
+ While it is our intention to develop with a consistent API going forward, we will not make promises until a later version is released.
9
+
8
10
 
9
11
  ## Installation
10
12
 
@@ -12,6 +14,7 @@ This Django app provides a seamless interface to the Constant Contact API, allow
12
14
  pip install django-ctct
13
15
  ```
14
16
 
17
+
15
18
  ## Configuration
16
19
 
17
20
  1) **Add to `INSTALLED_APPS`:**
@@ -40,6 +43,7 @@ urlpatterns = [
40
43
  # ... other URL patterns
41
44
  ]
42
45
  ```
46
+
43
47
  3) **ConstantContact API Credentials:**
44
48
 
45
49
  Head to https://app.constantcontact.com/pages/dma/portal/ to set up your application with ConstantContact.
@@ -89,6 +93,7 @@ CTCT_SYNC_ADMIN = False # Django admin CRUD operations will sync with ctct
89
93
  * `CTCT_PREVIEW_MESSAGE` will be blank by default.
90
94
 
91
95
  3) **Run Migrations:**
96
+
92
97
  ```bash
93
98
  > ./manage.py makemigrations
94
99
  > ./manage.py migrate
@@ -97,9 +102,10 @@ CTCT_SYNC_ADMIN = False # Django admin CRUD operations will sync with ctct
97
102
  4) **Create Authenticatin Token:**
98
103
 
99
104
  After the app has been installed and configured, you must generate your first auth token:
100
- * Open up the `CTCT_REDIRECT_URI` address in your browser
101
- * Use your ConstantContact credentials to log in
102
- * From this point forward `django-ctct` should use refresh tokens, so no need to manually log in again
105
+
106
+ * Open up the `CTCT_REDIRECT_URI` address in your browser
107
+ * Use your ConstantContact credentials to log in
108
+ * From this point forward `django-ctct` should use refresh tokens, so no need to manually log in again
103
109
 
104
110
 
105
111
  ## Usage
@@ -109,12 +115,16 @@ If you wish to import data from ConstantContact.com into your local database (re
109
115
  > ./manage.py import_ctct
110
116
  ```
111
117
 
112
- You will be asked before each model type is imported. **Note** ConstantContact does not provide a bulk API endpoint for fetching Campaign Activities, so depending on the size of your account, this might take some time and possible put you over their 10,000 request per day limit if you run it regularly.
118
+ You will be asked before each model type is imported.
119
+ **Note** ConstantContact does not provide a bulk API endpoint for fetching Campaign Activities, so depending on the size of your account, this might take some time and possible put you over their 10,000 request per day limit if you run it regularly.
113
120
 
114
- Since ConstantContact does not offer any webhooks, you will need to set up a cron job if you want your account to remain syncronized with ConstantContact's database. You can use the `--no-input` flag to bypass the interactive questions. The `--stats-only` flag is useful for running a cron job to keep EmailCampaign statistics updated.
121
+ Since ConstantContact does not offer any webhooks, you will need to set up a cron job if you want your account to remain syncronized with ConstantContact's database.
122
+ You can use the `--no-input` flag to bypass the interactive questions.
123
+ The `--stats-only` flag is useful for running a cron job to keep EmailCampaign statistics updated.
115
124
 
116
125
  If you wish to use the Django admin to interact with ConstantContact, you must explicitly set the `CTCT_USE_ADMIN` and `CTCT_SYNC_ADMIN` settings to `True`.
117
126
 
127
+
118
128
  ## Testing
119
129
 
120
130
  To install dev dependencies:
@@ -134,13 +144,16 @@ To run tests:
134
144
  > poetry run coverage report
135
145
  ```
136
146
 
147
+
137
148
  ## Contributing
138
149
 
139
150
  Once version 0.0.1 is released on PyPI, we hope to implement the following new features (in no particular order):
140
151
 
141
- * Support for API syncing using signals (`post_save`, `pre_delete`, `m2m_changed`, etc). This will be controlled by the `CTCT_SYNC_SIGNALS` setting. **Update** This probably won't work as desired since the primary object will be saved before related objects are.
142
- * Background task support using `django-tasks` (which hopefully will merge into Django). This will be controlled by the `CTCT_ENQUEUE_DEFAULT` setting.
143
- * Add `models.CheckConstraint` and `models.UniqueConstraint` constraints that are currently commented out.
152
+ * Support for API syncing using signals (`post_save`, `pre_delete`, `m2m_changed`, etc).
153
+ This will be controlled by the `CTCT_SYNC_SIGNALS` setting.
154
+ **Update** This probably won't work as desired since the primary object will be saved before related objects are.
155
+ * Background task support using `django-tasks` (which hopefully will merge into Django). This will be controlled by the `CTCT_ENQUEUE_DEFAULT` setting.
156
+ * Add `models.CheckConstraint` and `models.UniqueConstraint` constraints that are currently commented out.
144
157
 
145
158
 
146
159
  I'm always open to new suggestions, so please reach out on GitHub: https://github.com/geoffrey-eisenbarth/django-ctct/