creme-crm 2.7__py3-none-any.whl → 2.7.1__py3-none-any.whl
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.
- creme/__init__.py +1 -1
- creme/billing/tests/base.py +1 -0
- creme/creme_core/locale/fr/LC_MESSAGES/djangojs.mo +0 -0
- creme/creme_core/locale/fr/LC_MESSAGES/djangojs.po +4 -1
- creme/creme_core/static/creme_core/js/forms.js +4 -1
- creme/creme_core/static/creme_core/js/notification.js +8 -5
- creme/creme_core/static/creme_core/js/tests/dialog/glasspane.js +22 -2
- creme/creme_core/static/creme_core/js/tests/form/forms.js +9 -1
- creme/creme_core/static/creme_core/js/tests/views/notification.js +86 -5
- creme/creme_core/static/creme_core/js/widgets/editor.js +10 -0
- creme/creme_core/templates/creme_core/forms/widgets/entity-selector.html +1 -1
- creme/creme_core/templates/creme_core/tests/test_frame.html +1 -1
- creme/documents/apps.py +4 -2
- creme/mobile/populate.py +17 -8
- {creme_crm-2.7.dist-info → creme_crm-2.7.1.dist-info}/METADATA +3 -3
- {creme_crm-2.7.dist-info → creme_crm-2.7.1.dist-info}/RECORD +20 -20
- {creme_crm-2.7.dist-info → creme_crm-2.7.1.dist-info}/WHEEL +0 -0
- {creme_crm-2.7.dist-info → creme_crm-2.7.1.dist-info}/entry_points.txt +0 -0
- {creme_crm-2.7.dist-info → creme_crm-2.7.1.dist-info}/licenses/LICENSE.txt +0 -0
- {creme_crm-2.7.dist-info → creme_crm-2.7.1.dist-info}/top_level.txt +0 -0
creme/__init__.py
CHANGED
creme/billing/tests/base.py
CHANGED
|
Binary file
|
|
@@ -8,7 +8,7 @@ msgid ""
|
|
|
8
8
|
msgstr ""
|
|
9
9
|
"Project-Id-Version: Creme Creme-Core 2.7\n"
|
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
|
11
|
-
"POT-Creation-Date: 2025-
|
|
11
|
+
"POT-Creation-Date: 2025-10-02 14:52+0100\n"
|
|
12
12
|
"Last-Translator: Hybird <contact@hybird.org>\n"
|
|
13
13
|
"Language: fr\n"
|
|
14
14
|
"MIME-Version: 1.0\n"
|
|
@@ -132,6 +132,9 @@ msgstr "Voulez-vous vraiment cloner cette fiche ?"
|
|
|
132
132
|
msgid "Chose the type of entity to create"
|
|
133
133
|
msgstr "Choisir le type de fiche à créer"
|
|
134
134
|
|
|
135
|
+
msgid "A few moments ago"
|
|
136
|
+
msgstr "Il y a quelques instants"
|
|
137
|
+
|
|
135
138
|
#, javascript-format
|
|
136
139
|
msgid "%d minute ago"
|
|
137
140
|
msgid_plural "%d minutes ago"
|
|
@@ -247,7 +247,10 @@ creme.forms.validateHtml5Form = function(form, options) {
|
|
|
247
247
|
noValidate: options.noValidate || form.is('[novalidate]')
|
|
248
248
|
};
|
|
249
249
|
|
|
250
|
-
$('input, select, textarea, datalist, output', form)
|
|
250
|
+
var inputs = $('input, select, textarea, datalist, output', form);
|
|
251
|
+
|
|
252
|
+
inputs.filter(':not([type="submit"])').trigger('html5-pre-validate', [options]);
|
|
253
|
+
inputs.each(function() {
|
|
251
254
|
$.extend(errors, creme.forms.validateHtml5Field($(this), fieldOptions));
|
|
252
255
|
});
|
|
253
256
|
|
|
@@ -142,9 +142,11 @@ creme.notification.NotificationBox = creme.component.Component.sub({
|
|
|
142
142
|
|
|
143
143
|
_humanizedTimeDelta: function(secondsTimedelta) {
|
|
144
144
|
// TODO: use momentjs for this job
|
|
145
|
-
var minutesTimeDelta = Math.
|
|
145
|
+
var minutesTimeDelta = Math.floor(secondsTimedelta / 60);
|
|
146
146
|
|
|
147
|
-
if (minutesTimeDelta <
|
|
147
|
+
if (minutesTimeDelta < 1) {
|
|
148
|
+
return gettext('A few moments ago');
|
|
149
|
+
} else if (minutesTimeDelta < 60) {
|
|
148
150
|
return ngettext(
|
|
149
151
|
'%d minute ago', '%d minutes ago', minutesTimeDelta
|
|
150
152
|
).format(minutesTimeDelta);
|
|
@@ -176,15 +178,16 @@ creme.notification.NotificationBox = creme.component.Component.sub({
|
|
|
176
178
|
return;
|
|
177
179
|
}
|
|
178
180
|
|
|
181
|
+
var self = this;
|
|
179
182
|
var now = Date.now();
|
|
180
183
|
|
|
181
184
|
$('.notification-item').each(function() {
|
|
182
185
|
var item = $(this);
|
|
183
|
-
var created = item.data('created');
|
|
184
|
-
var label =
|
|
186
|
+
var created = parseInt(item.data('created'));
|
|
187
|
+
var label = self._humanizedTimeDelta(Math.round((now - created) / 1000));
|
|
185
188
|
|
|
186
189
|
item.find('.notification-created').text(label);
|
|
187
|
-
}
|
|
190
|
+
});
|
|
188
191
|
},
|
|
189
192
|
|
|
190
193
|
_updateItems: function(notifications) {
|
|
@@ -109,7 +109,7 @@ QUnit.test('creme.dialog.GlassPane (toggle)', function(assert) {
|
|
|
109
109
|
equal(false, glasspane.isOpened());
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
-
QUnit.skipIf(QUnit.browsers.isChrome('
|
|
112
|
+
QUnit.skipIf(!QUnit.browsers.isChrome('>=85'), 'creme.dialog.GlassPane (anchor z-index) - chrome >= 85', function(assert) {
|
|
113
113
|
var glasspane = new creme.dialog.GlassPane();
|
|
114
114
|
|
|
115
115
|
this.qunitFixture().css('z-index', 1000);
|
|
@@ -119,7 +119,27 @@ QUnit.skipIf(QUnit.browsers.isChrome('<85'), 'creme.dialog.GlassPane (anchor z-i
|
|
|
119
119
|
equal(999, glasspane.pane().css('z-index'));
|
|
120
120
|
});
|
|
121
121
|
|
|
122
|
-
QUnit.skipIf(QUnit.browsers.isFirefox(
|
|
122
|
+
QUnit.skipIf(!QUnit.browsers.isFirefox('>=143'), 'creme.dialog.GlassPane (anchor z-index) - firefox >= 143', function(assert) {
|
|
123
|
+
var glasspane = new creme.dialog.GlassPane();
|
|
124
|
+
|
|
125
|
+
this.qunitFixture().css('z-index', 1000);
|
|
126
|
+
|
|
127
|
+
glasspane.open(this.qunitFixture());
|
|
128
|
+
equal(true, glasspane.isOpened());
|
|
129
|
+
equal(999, glasspane.pane().css('z-index'));
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
QUnit.skipIf(!QUnit.browsers.isFirefox('<143'), 'creme.dialog.GlassPane (anchor z-index) - firefox < 143', function(assert) {
|
|
133
|
+
var glasspane = new creme.dialog.GlassPane();
|
|
134
|
+
|
|
135
|
+
this.qunitFixture().css('z-index', 1000);
|
|
136
|
+
|
|
137
|
+
glasspane.open(this.qunitFixture());
|
|
138
|
+
equal(true, glasspane.isOpened());
|
|
139
|
+
equal('auto', glasspane.pane().css('z-index'));
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
QUnit.skipIf(!QUnit.browsers.isChrome('<85'), 'creme.dialog.GlassPane (anchor z-index) - chrome < 143', function(assert) {
|
|
123
143
|
var glasspane = new creme.dialog.GlassPane();
|
|
124
144
|
|
|
125
145
|
this.qunitFixture().css('z-index', 1000);
|
|
@@ -276,6 +276,8 @@ QUnit.test('creme.forms.validateHtml5Form (no error)', function(assert) {
|
|
|
276
276
|
var lastname = this.form.find('[name="lastname"]').on('html5-invalid', this.mockListener('lastname-invalid'));
|
|
277
277
|
var email = this.form.find('[name="email"]').on('html5-invalid', this.mockListener('email-invalid'));
|
|
278
278
|
|
|
279
|
+
this.form.on('html5-pre-validate', 'input', this.mockListener('pre-validate'));
|
|
280
|
+
|
|
279
281
|
lastname.val('Doe');
|
|
280
282
|
email.val('john.doe@unknown.com');
|
|
281
283
|
|
|
@@ -291,7 +293,13 @@ QUnit.test('creme.forms.validateHtml5Form (no error)', function(assert) {
|
|
|
291
293
|
deepEqual({
|
|
292
294
|
'firstname-invalid': [['html5-invalid', [false]]],
|
|
293
295
|
'lastname-invalid': [['html5-invalid', [false]]],
|
|
294
|
-
'email-invalid': [['html5-invalid', [false]]]
|
|
296
|
+
'email-invalid': [['html5-invalid', [false]]],
|
|
297
|
+
'pre-validate': [
|
|
298
|
+
['html5-pre-validate', [{}]],
|
|
299
|
+
['html5-pre-validate', [{}]],
|
|
300
|
+
['html5-pre-validate', [{}]]
|
|
301
|
+
// ignore input[type="submit"] field
|
|
302
|
+
]
|
|
295
303
|
}, this.mockListenerJQueryCalls());
|
|
296
304
|
});
|
|
297
305
|
|
|
@@ -140,7 +140,7 @@ QUnit.test('creme.NotificationBox (already active)', function() {
|
|
|
140
140
|
this.assertRaises(function() {
|
|
141
141
|
return new creme.notification.NotificationBox(element, {
|
|
142
142
|
refreshUrl: 'mock/notifs/refresh',
|
|
143
|
-
discardUrl: 'mock/
|
|
143
|
+
discardUrl: 'mock/notifs/all'
|
|
144
144
|
});
|
|
145
145
|
}, Error, 'Error: NotificationBox is already active');
|
|
146
146
|
});
|
|
@@ -153,7 +153,7 @@ QUnit.test('creme.NotificationBox (initialData)', function() {
|
|
|
153
153
|
this.withFrozenTime('2025-01-16T17:30:00', function() {
|
|
154
154
|
var box = new creme.notification.NotificationBox(element, {
|
|
155
155
|
refreshUrl: 'mock/notifs/refresh',
|
|
156
|
-
discardUrl: 'mock/
|
|
156
|
+
discardUrl: 'mock/notifs/all'
|
|
157
157
|
}).stopFetch();
|
|
158
158
|
|
|
159
159
|
deepEqual(box.initialData(), this.defaultNotificationData());
|
|
@@ -200,7 +200,29 @@ QUnit.test('creme.NotificationBox (initialData)', function() {
|
|
|
200
200
|
});
|
|
201
201
|
});
|
|
202
202
|
|
|
203
|
-
QUnit.test('creme.NotificationBox (
|
|
203
|
+
QUnit.test('creme.NotificationBox (_humanizedTimeDelta)', function(assert) {
|
|
204
|
+
var element = $(this.createNotificationBoxHtml()).appendTo(this.qunitFixture());
|
|
205
|
+
var box = new creme.notification.NotificationBox(element, {
|
|
206
|
+
refreshUrl: 'mock/notifs/refresh',
|
|
207
|
+
discardUrl: 'mock/notifs/discard'
|
|
208
|
+
}).stopFetch();
|
|
209
|
+
|
|
210
|
+
equal(box._humanizedTimeDelta(0), gettext('A few moments ago'));
|
|
211
|
+
equal(box._humanizedTimeDelta(59), gettext('A few moments ago'));
|
|
212
|
+
|
|
213
|
+
equal(box._humanizedTimeDelta(60), ngettext('%d minute ago', '%d minutes ago', 1).format(1));
|
|
214
|
+
equal(box._humanizedTimeDelta(60 * 35 + 59), ngettext('%d minute ago', '%d minutes ago', 35).format(35));
|
|
215
|
+
equal(box._humanizedTimeDelta(60 * 60 - 1), ngettext('%d minute ago', '%d minutes ago', 59).format(59));
|
|
216
|
+
|
|
217
|
+
equal(box._humanizedTimeDelta(60 * 60), ngettext('More than %d hour ago', 'More than %d hours ago', 1).format(1));
|
|
218
|
+
equal(box._humanizedTimeDelta(60 * 60 * 7 + 35 * 60), ngettext('More than %d hour ago', 'More than %d hours ago', 7).format(7));
|
|
219
|
+
equal(box._humanizedTimeDelta(60 * 60 * 24 - 1), ngettext('More than %d hour ago', 'More than %d hours ago', 23).format(23));
|
|
220
|
+
|
|
221
|
+
equal(box._humanizedTimeDelta(60 * 60 * 24), ngettext('More than %d day ago', 'More than %d days ago', 1).format(1));
|
|
222
|
+
equal(box._humanizedTimeDelta(60 * 60 * 24 * 7), ngettext('More than %d day ago', 'More than %d days ago', 7).format(7));
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
QUnit.test('creme.NotificationBox (fetch)', function(assert) {
|
|
204
226
|
var element = $(this.createNotificationBoxHtml()).appendTo(this.qunitFixture());
|
|
205
227
|
var box = new creme.notification.NotificationBox(element, {
|
|
206
228
|
refreshDelay: 150,
|
|
@@ -240,10 +262,11 @@ QUnit.test('creme.NotificationBox (fetch)', function() {
|
|
|
240
262
|
}.bind(this), 350);
|
|
241
263
|
});
|
|
242
264
|
|
|
243
|
-
QUnit.test('creme.NotificationBox (fetch, update deltas)', function() {
|
|
265
|
+
QUnit.test('creme.NotificationBox (fetch, update deltas calls)', function(assert) {
|
|
244
266
|
var element = $(this.createNotificationBoxHtml({
|
|
245
267
|
initialData: this.defaultNotificationData()
|
|
246
268
|
})).appendTo(this.qunitFixture());
|
|
269
|
+
|
|
247
270
|
var box = new creme.notification.NotificationBox(element, {
|
|
248
271
|
deltaRefreshDelay: 150,
|
|
249
272
|
refreshUrl: 'mock/notifs/refresh',
|
|
@@ -273,7 +296,65 @@ QUnit.test('creme.NotificationBox (fetch, update deltas)', function() {
|
|
|
273
296
|
}, 450);
|
|
274
297
|
});
|
|
275
298
|
|
|
276
|
-
QUnit.test('creme.NotificationBox (fetch,
|
|
299
|
+
QUnit.test('creme.NotificationBox (fetch, update deltas rendering)', function(assert) {
|
|
300
|
+
var element = $(this.createNotificationBoxHtml({
|
|
301
|
+
initialData: this.defaultNotificationData()
|
|
302
|
+
})).appendTo(this.qunitFixture());
|
|
303
|
+
|
|
304
|
+
var box;
|
|
305
|
+
|
|
306
|
+
this.withFrozenTime('2025-01-16T17:30:00', function() {
|
|
307
|
+
box = new creme.notification.NotificationBox(element, {
|
|
308
|
+
refreshUrl: 'mock/notifs/refresh',
|
|
309
|
+
discardUrl: 'mock/notifs/all'
|
|
310
|
+
}).stopFetch();
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
this.withFrozenTime('2025-01-16T18:00:00', function() {
|
|
314
|
+
// Fake date does not work in a timeout (I assume that it is not the same thread).
|
|
315
|
+
// So we need call the internal method.
|
|
316
|
+
box._updateDeltas();
|
|
317
|
+
|
|
318
|
+
this.equalHtml((
|
|
319
|
+
'<li class="notification-item notification-item-level1" data-id="1" data-created="${timestampA}">' +
|
|
320
|
+
'<span class="notification-channel">A</span>' +
|
|
321
|
+
'<span class="notification-subject">Subject #1</span>' +
|
|
322
|
+
'<span class="notification-created" title="${createdTitleA}">${deltaLabelA}</span>' +
|
|
323
|
+
'<div class="notification-body">Content #1</div>' +
|
|
324
|
+
'<button type="button" class="discard-notification">${discardLabel}</button>' +
|
|
325
|
+
'</li>' +
|
|
326
|
+
'<li class="notification-item notification-item-level2" data-id="2" data-created="${timestampB}">' +
|
|
327
|
+
'<span class="notification-channel">A</span>' +
|
|
328
|
+
'<span class="notification-subject">Subject #2</span>' +
|
|
329
|
+
'<span class="notification-created" title="${createdTitleB}">${deltaLabelB}</span>' +
|
|
330
|
+
'<div class="notification-body">Content #2</div>' +
|
|
331
|
+
'<button type="button" class="discard-notification">${discardLabel}</button>' +
|
|
332
|
+
'</li>' +
|
|
333
|
+
'<li class="notification-item notification-item-level2" data-id="3" data-created="${timestampC}">' +
|
|
334
|
+
'<span class="notification-channel">B</span>' +
|
|
335
|
+
'<span class="notification-subject">Subject #3</span>' +
|
|
336
|
+
'<span class="notification-created" title="${createdTitleC}">${deltaLabelC}</span>' +
|
|
337
|
+
'<div class="notification-body">Content #3</div>' +
|
|
338
|
+
'<button type="button" class="discard-notification">${discardLabel}</button>' +
|
|
339
|
+
'</li>'
|
|
340
|
+
).template({
|
|
341
|
+
discardLabel: gettext('Validate'),
|
|
342
|
+
timestampA: Date.parse('2025-01-15T16:30:00'),
|
|
343
|
+
timestampB: Date.parse('2025-01-16T08:35:00'),
|
|
344
|
+
timestampC: Date.parse('2025-01-16T17:12:00'),
|
|
345
|
+
createdTitleA: new Date('2025-01-15T16:30:00').toLocaleString(),
|
|
346
|
+
createdTitleB: new Date('2025-01-16T08:35:00').toLocaleString(),
|
|
347
|
+
createdTitleC: new Date('2025-01-16T17:12:00').toLocaleString(),
|
|
348
|
+
deltaLabelA: ngettext('More than %d day ago', 'More than %d days ago', 1).format(1),
|
|
349
|
+
// 30 minutes later : 18h - 8h35 = More than 9 hours ago
|
|
350
|
+
deltaLabelB: ngettext('More than %d hour ago', 'More than %d hours ago', 9).format(9),
|
|
351
|
+
// 30 minutes later : 18h - 17h12 = More than 48 minutes ago
|
|
352
|
+
deltaLabelC: ngettext('%d minute ago', '%d minutes ago', 48).format(48)
|
|
353
|
+
}), element.find('.notification-items'));
|
|
354
|
+
}.bind(this));
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
QUnit.test('creme.NotificationBox (fetch, error)', function(assert) {
|
|
277
358
|
var element = $(this.createNotificationBoxHtml({
|
|
278
359
|
initialData: this.defaultNotificationData()
|
|
279
360
|
})).appendTo(this.qunitFixture());
|
|
@@ -130,6 +130,14 @@ creme.widget.Editor = creme.widget.declare('ui-creme-editor', {
|
|
|
130
130
|
|
|
131
131
|
editor.render();
|
|
132
132
|
|
|
133
|
+
this._onPreValidate = function() {
|
|
134
|
+
if (this._editor) {
|
|
135
|
+
this._editor.save();
|
|
136
|
+
}
|
|
137
|
+
}.bind(this);
|
|
138
|
+
|
|
139
|
+
element.on('html5-pre-validate', this._onPreValidate);
|
|
140
|
+
|
|
133
141
|
creme.object.invoke(cb, element);
|
|
134
142
|
element.addClass('widget-ready');
|
|
135
143
|
},
|
|
@@ -138,6 +146,8 @@ creme.widget.Editor = creme.widget.declare('ui-creme-editor', {
|
|
|
138
146
|
if (this._editor) {
|
|
139
147
|
this._editor.remove();
|
|
140
148
|
}
|
|
149
|
+
|
|
150
|
+
element.off('html5-pre-validate', this._onPreValidate);
|
|
141
151
|
},
|
|
142
152
|
|
|
143
153
|
editor: function(element) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{% load i18n %}{% load jsonify from creme_core_tags %}{% translate 'Select…' as label %}
|
|
2
|
-
<span class="{{widget.class}}" widget="{{widget.widget_type}}" labelURL="{{widget.text_url}}" label="{{label}}" popupURL="{{widget.url}}" popupSelection="{{widget.selection}}"
|
|
2
|
+
<span class="{{widget.class}}" widget="{{widget.widget_type}}" {% if widget.attrs.id %}id="{{widget.attrs.id}}"{% endif %} labelURL="{{widget.text_url}}" label="{{label}}" popupURL="{{widget.url}}" popupSelection="{{widget.selection}}"
|
|
3
3
|
{% if widget.autoselect %}popupAuto{% endif %}
|
|
4
4
|
{% if widget.qfilter %}qfilter="{{widget.qfilter|jsonify}}"{% endif %}>
|
|
5
5
|
{% include widget.input.template_name with widget=widget.input %}
|
|
@@ -357,7 +357,7 @@
|
|
|
357
357
|
</div>
|
|
358
358
|
<div class="popup-form-field">
|
|
359
359
|
<label for="comment">Comment</label>
|
|
360
|
-
<textarea name="comment"
|
|
360
|
+
<textarea widget="ui-creme-editor" name="comment" class="ui-creme-editor ui-creme-widget widget-auto" basepath="tiny_mce"></textarea>
|
|
361
361
|
</div>
|
|
362
362
|
<div class="popup-form-field">
|
|
363
363
|
<label for="image">Image</label>
|
creme/documents/apps.py
CHANGED
|
@@ -37,10 +37,12 @@ class DocumentsConfig(CremeAppConfig):
|
|
|
37
37
|
def register_entity_models(self, creme_registry):
|
|
38
38
|
creme_registry.register_entity_models(self.Document, self.Folder)
|
|
39
39
|
|
|
40
|
-
def register_actions(self, actions_registry):
|
|
40
|
+
# def register_actions(self, actions_registry):
|
|
41
|
+
def register_actions(self, action_registry):
|
|
41
42
|
from . import actions
|
|
42
43
|
|
|
43
|
-
actions_registry.register_instance_actions(
|
|
44
|
+
# actions_registry.register_instance_actions(
|
|
45
|
+
action_registry.register_instance_actions(
|
|
44
46
|
actions.ExploreFolderAction,
|
|
45
47
|
actions.DownloadAction,
|
|
46
48
|
)
|
creme/mobile/populate.py
CHANGED
|
@@ -29,11 +29,20 @@ logger = logging.getLogger(__name__)
|
|
|
29
29
|
class Populator(BasePopulator):
|
|
30
30
|
dependencies = ['creme_core', 'persons']
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
SETTING_VALUES = [
|
|
33
|
+
SettingValue(
|
|
34
|
+
key=setting_keys.location_map_url_key,
|
|
35
|
+
value='https://www.google.com/maps/?q={search}',
|
|
36
|
+
),
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
# def populate(self):
|
|
40
|
+
# already_populated = SettingValue.objects.exists_4_key(setting_keys.location_map_url_key)
|
|
41
|
+
#
|
|
42
|
+
# if not already_populated:
|
|
43
|
+
# SettingValue.objects.set_4_key(
|
|
44
|
+
# setting_keys.location_map_url_key,
|
|
45
|
+
# 'https://www.google.com/maps/?q={search}'
|
|
46
|
+
# )
|
|
47
|
+
def _already_populated(self):
|
|
48
|
+
return SettingValue.objects.exists_4_key(setting_keys.location_map_url_key)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: creme-crm
|
|
3
|
-
Version: 2.7
|
|
3
|
+
Version: 2.7.1
|
|
4
4
|
Summary: A CRM software using the django web framework
|
|
5
5
|
Home-page: https://www.cremecrm.com
|
|
6
6
|
Author: hybird.org
|
|
@@ -28,13 +28,13 @@ Classifier: Topic :: Office/Business
|
|
|
28
28
|
Requires-Python: >=3.10
|
|
29
29
|
Description-Content-Type: text/markdown
|
|
30
30
|
License-File: LICENSE.txt
|
|
31
|
-
Requires-Dist: django~=5.2.
|
|
31
|
+
Requires-Dist: django~=5.2.7
|
|
32
32
|
Requires-Dist: redis~=6.2.0
|
|
33
33
|
Requires-Dist: Pillow~=11.3.0
|
|
34
34
|
Requires-Dist: python-dateutil~=2.8.2
|
|
35
35
|
Requires-Dist: bleach[css]~=6.2.0
|
|
36
36
|
Requires-Dist: django-formtools~=2.5.1
|
|
37
|
-
Requires-Dist: cryptography~=45.0.
|
|
37
|
+
Requires-Dist: cryptography~=45.0.7
|
|
38
38
|
Requires-Dist: xlrd~=2.0.2
|
|
39
39
|
Requires-Dist: xlwt~=1.3.0
|
|
40
40
|
Requires-Dist: openpyxl~=3.1.5
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
creme/__init__.py,sha256=
|
|
1
|
+
creme/__init__.py,sha256=dYTgp6h7pSSOKsdLdSxD3sHnrSIkKkMaYxdJoXvEmKQ,1078
|
|
2
2
|
creme/manage.py,sha256=9TahLBSSW_WbL1SZnDw0l1vM69w7MZ7P2BIfLLzquIw,968
|
|
3
3
|
creme/settings.py,sha256=vFdSBTywLk_rJehLv643xAYJuuwY8nFcaKhUfTEwq-A,62248
|
|
4
4
|
creme/urls.py,sha256=Dz1YwuwAKPpI3LmI8YdCuS3-2fZtX48xMhJajmqMe5o,2681
|
|
@@ -297,7 +297,7 @@ creme/billing/templates/billing/forms/widgets/exporter-option.html,sha256=vvu8Vg
|
|
|
297
297
|
creme/billing/templates/billing/forms/widgets/totals-extractor.html,sha256=RrgeWTjujDsBQ4ap0z21xqSPAdLkzoHMmDW17gc5MiA,4303
|
|
298
298
|
creme/billing/templates/billing/frags/lines-errors.html,sha256=cvfGnqWkl99yByYteAsj6mBLTolHe5TrVraEbxMnomg,1027
|
|
299
299
|
creme/billing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
300
|
-
creme/billing/tests/base.py,sha256=
|
|
300
|
+
creme/billing/tests/base.py,sha256=Nns9DLXA-GxzXBJe5vbb5ERPLhyDiY9j4go01bra5x8,36699
|
|
301
301
|
creme/billing/tests/fake_exporters.py,sha256=NVzqGGvBfHqN7jV0xG0cH6xvHfjbAo9fwN6X4cXC6OM,1067
|
|
302
302
|
creme/billing/tests/test_app.py,sha256=fcp06PTJ1xVKWTNjHDfoLbYUci8gqbyi-3hkG-3YkmU,16057
|
|
303
303
|
creme/billing/tests/test_buttons.py,sha256=NNxqW0Q3NGXLZyW0knUn5N2FP2btV-jdeZiFhWpWXC4,8455
|
|
@@ -724,8 +724,8 @@ creme/creme_core/gui/listview/smart_columns.py,sha256=AwoPO77b6D5XLTTZuw3CPVCdYC
|
|
|
724
724
|
creme/creme_core/gui/listview/state.py,sha256=jPf0OM2whsV6jizriUj86D03jA7qyDxkHhB8GPfGAkU,4574
|
|
725
725
|
creme/creme_core/locale/fr/LC_MESSAGES/django.mo,sha256=b19hBuRaAVmraPO2kD3F5gTEsHhBGsEPYLbd5qIgOr8,120876
|
|
726
726
|
creme/creme_core/locale/fr/LC_MESSAGES/django.po,sha256=r2LFrY60s2OugxfUMQ3GC-mzQNpqEOHKJG_O_Le088c,134669
|
|
727
|
-
creme/creme_core/locale/fr/LC_MESSAGES/djangojs.mo,sha256=
|
|
728
|
-
creme/creme_core/locale/fr/LC_MESSAGES/djangojs.po,sha256=
|
|
727
|
+
creme/creme_core/locale/fr/LC_MESSAGES/djangojs.mo,sha256=Z8n0ArJPLjDQ_8LG34zxDbZ2pEPsPV8REicTRnRtr18,6519
|
|
728
|
+
creme/creme_core/locale/fr/LC_MESSAGES/djangojs.po,sha256=jDNznGkzeo7h_b5wkBm5Ige49apFE41d4U4PJySgoZ4,8930
|
|
729
729
|
creme/creme_core/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
730
730
|
creme/creme_core/management/base.py,sha256=0maNg6uqJWumQpG5s77vii1aUfxlJbZ604PtUxsgeUI,2331
|
|
731
731
|
creme/creme_core/management/csv_import_example.py,sha256=0F0tLivhPq7BLaONf0IEwQvEhWHky13crO_dqc4jNfw,4042
|
|
@@ -836,7 +836,7 @@ creme/creme_core/static/creme_core/js/bricks.js,sha256=cCLwXIQ4aAmgsJlEB7QQaedM0
|
|
|
836
836
|
creme/creme_core/static/creme_core/js/creme.js,sha256=m2dBD-oS--a3KC7CtINrGHB48j7HFU7HWusDvQTGR7Y,29
|
|
837
837
|
creme/creme_core/static/creme_core/js/detailview.js,sha256=cWTq3cNsK4AkjcKq3QKpZia9nz0cY87Xs_9Edp_hyxU,4318
|
|
838
838
|
creme/creme_core/static/creme_core/js/entity_cell.js,sha256=oGONtNQ-bsi0E0w9ZRX9evV0VpIpijwCl8yUvvifODU,21771
|
|
839
|
-
creme/creme_core/static/creme_core/js/forms.js,sha256=
|
|
839
|
+
creme/creme_core/static/creme_core/js/forms.js,sha256=jATDz_Jld8rWeSZlLUnKTuuCoNjkuel8DfsEZljXFMM,9062
|
|
840
840
|
creme/creme_core/static/creme_core/js/import.js,sha256=C-SHewSDW4nJ9ljXztd--1qEJLkAczkjwDx9Rq31jyA,1646
|
|
841
841
|
creme/creme_core/static/creme_core/js/jobs.js,sha256=aPxvpmC8a-Rx4_YFlloFWHRP3dUyFP_NYdAGYGSuZOg,8162
|
|
842
842
|
creme/creme_core/static/creme_core/js/list_view.core.js,sha256=ooJqQEuJnPbRWJnpVbAu_Lbq1WGv-dNO7WjE3BW6XDs,24193
|
|
@@ -844,7 +844,7 @@ creme/creme_core/static/creme_core/js/lv_widget.js,sha256=QUSNIkbfDgYabOZPuvus7i
|
|
|
844
844
|
creme/creme_core/static/creme_core/js/media.js,sha256=Vezl7GdNLMZRLOcDOrJG-zvVNL6EBP56Z6YqNy4eomA,155
|
|
845
845
|
creme/creme_core/static/creme_core/js/menu.js,sha256=QVOBekOb0LhvZ9yQqMotJ7EPQeAtNiA7VS9MItwdkeQ,5969
|
|
846
846
|
creme/creme_core/static/creme_core/js/merge.js,sha256=j5jljOL9CAHmC5tLX5_f68FCygU6F86GcXBEyx7chUI,2819
|
|
847
|
-
creme/creme_core/static/creme_core/js/notification.js,sha256=
|
|
847
|
+
creme/creme_core/static/creme_core/js/notification.js,sha256=Gf8YQlMPO8Ae1Q3i2RpR5hRDCRVEF7P-w7m7ljVHIps,10137
|
|
848
848
|
creme/creme_core/static/creme_core/js/relations.js,sha256=YG2AKfX1VTjpMVNWwui20JQBsY_MpBUcOPx9e-HTJnA,4223
|
|
849
849
|
creme/creme_core/static/creme_core/js/search.js,sha256=zPUL43HvjEvgCqZfswzW1DiCCVW6lwkyQyJY2rOcGgA,10655
|
|
850
850
|
creme/creme_core/static/creme_core/js/utils.js,sha256=pOm28YkeM2D5xvxIW5jtBukaHl19r84CYFC5F_r17J8,10000
|
|
@@ -965,12 +965,12 @@ creme/creme_core/static/creme_core/js/tests/component/qunit-event-mixin.js,sha25
|
|
|
965
965
|
creme/creme_core/static/creme_core/js/tests/dialog/dialog-form.js,sha256=Bbwjv0N_zRYGhLK5TknvWftEwhm_MfDjG6trlEklE3c,50351
|
|
966
966
|
creme/creme_core/static/creme_core/js/tests/dialog/dialog.js,sha256=m9mZz9qRnm71VH6yYAmYEPDa_P9lJlH58j4Vy7ZIS1M,36109
|
|
967
967
|
creme/creme_core/static/creme_core/js/tests/dialog/frame.js,sha256=Ydv9EEsGS9VbR_lkjSTOyDlr5w4rdaXrNIbZwP5lah4,42497
|
|
968
|
-
creme/creme_core/static/creme_core/js/tests/dialog/glasspane.js,sha256=
|
|
968
|
+
creme/creme_core/static/creme_core/js/tests/dialog/glasspane.js,sha256=5ZgVr113-rXb6ucaLKf-tpBDF-Z13BT32ZrGwEhxSoo,6769
|
|
969
969
|
creme/creme_core/static/creme_core/js/tests/dialog/overlay.js,sha256=RYuVq9NLLx83-ich6XVOeIcEXc8Xf8YubfU3tYN_1R0,2948
|
|
970
970
|
creme/creme_core/static/creme_core/js/tests/dialog/popover.js,sha256=k49RXVYtNxNqGfH6rh4EXkpxtjeHvq3qq54CBijgRQ4,21434
|
|
971
971
|
creme/creme_core/static/creme_core/js/tests/dialog/qunit-dialog-mixin.js,sha256=nGkYqixDM9_qJjx4SC8-tdG7-uy0_u6pk3OyRlJkq1g,6790
|
|
972
972
|
creme/creme_core/static/creme_core/js/tests/form/dropdown.js,sha256=jBwBj4dD8lJPrp2vggyDyM_RDimHLs_09h72qRecaYY,5510
|
|
973
|
-
creme/creme_core/static/creme_core/js/tests/form/forms.js,sha256=
|
|
973
|
+
creme/creme_core/static/creme_core/js/tests/form/forms.js,sha256=rnCnsMMkW_YDoHem73kIv8XYpxqoRiabU5fqRvzV8Bc,19196
|
|
974
974
|
creme/creme_core/static/creme_core/js/tests/form/select2.js,sha256=v26J7T4WGLFh3pOgwpcPMuXfoBqC6tD4vwzWEhcsnc0,46963
|
|
975
975
|
creme/creme_core/static/creme_core/js/tests/jquery/toggle-attr.js,sha256=RxV0iufjPmG_bwBQLY9gUi7j2k7Jr7_ejJ6wKuRwGb8,2210
|
|
976
976
|
creme/creme_core/static/creme_core/js/tests/layout/textautosize.js,sha256=rm4Y5FUBM_kT17te9dXr_3p8UYaXtweXW5BuuSlB0T8,3238
|
|
@@ -1002,7 +1002,7 @@ creme/creme_core/static/creme_core/js/tests/views/import.js,sha256=gS0IZ3tF4k99G
|
|
|
1002
1002
|
creme/creme_core/static/creme_core/js/tests/views/jobs.js,sha256=xUyXtObVoGpEZYZsnxJTqOcHo-F9yFACyxH-U2QjhzA,16224
|
|
1003
1003
|
creme/creme_core/static/creme_core/js/tests/views/menu.js,sha256=0rhcZ08-Kku_Rywe9UhB5qPs9ty5bxf567swGVRom6E,12299
|
|
1004
1004
|
creme/creme_core/static/creme_core/js/tests/views/merge.js,sha256=bmnLjOgTFpF-UI6iUcmga5H968m23EfguzGJ6tEMGK0,5652
|
|
1005
|
-
creme/creme_core/static/creme_core/js/tests/views/notification.js,sha256=
|
|
1005
|
+
creme/creme_core/static/creme_core/js/tests/views/notification.js,sha256=yzTzDI1lrrji6bHQvpsdPOx8URJUploNWgi2iKVel1M,18143
|
|
1006
1006
|
creme/creme_core/static/creme_core/js/tests/views/qunit-detailview-mixin.js,sha256=ksHJJ90ubZG4jUte6ga0BovYo3jOkSv13xNYTEiooGU,1977
|
|
1007
1007
|
creme/creme_core/static/creme_core/js/tests/views/search.js,sha256=ajVh0VsptlehD7SlFIlmpyl0Bvy8OJpJrJxGIGsr8co,26587
|
|
1008
1008
|
creme/creme_core/static/creme_core/js/tests/views/utils.js,sha256=d8SjfK6grR8bUF13mw7lbh-ZkD7oV0orKZOGRLh-CAY,4258
|
|
@@ -1036,7 +1036,7 @@ creme/creme_core/static/creme_core/js/widgets/daterangeselector.js,sha256=9uXkKv
|
|
|
1036
1036
|
creme/creme_core/static/creme_core/js/widgets/datetime.js,sha256=imP0z3Np31ErjvrqrlMTU_teNRXNGVQ7htfXBE7O1BY,7558
|
|
1037
1037
|
creme/creme_core/static/creme_core/js/widgets/dinput.js,sha256=S08i2vxl01jVMX1v0o2z6Rs1aNG-AhxAALlbGiMG2lw,2410
|
|
1038
1038
|
creme/creme_core/static/creme_core/js/widgets/dselect.js,sha256=l0myMhwDwkaGqaZtw7AeZDEV3wFFhN2nisnOe1IHr_E,16077
|
|
1039
|
-
creme/creme_core/static/creme_core/js/widgets/editor.js,sha256=
|
|
1039
|
+
creme/creme_core/static/creme_core/js/widgets/editor.js,sha256=7VWOJv45SNFvAzbNMHe3gzb5kALHGP-x3rig9c-r8lI,5437
|
|
1040
1040
|
creme/creme_core/static/creme_core/js/widgets/entityselector.js,sha256=_l8gHUb7a9kmjCylU3mc6k6NqbOTZ2FRBrP1XLVybo8,6562
|
|
1041
1041
|
creme/creme_core/static/creme_core/js/widgets/frame.js,sha256=xQzkln6syVL4vdPucIruld-TBtw8hl_38UyGH4WtYfg,3102
|
|
1042
1042
|
creme/creme_core/static/creme_core/js/widgets/ordered.js,sha256=EhN1r2prDVnY8j0jDCJ5bM-tGUCX337XdLXOHk5X_7c,6327
|
|
@@ -1198,7 +1198,7 @@ creme/creme_core/templates/creme_core/forms/widgets/duration.html,sha256=SU2AeB9
|
|
|
1198
1198
|
creme/creme_core/templates/creme_core/forms/widgets/dyn-select.html,sha256=3uarcLVHwpss7uuh25WBiSPk7pp31f-wNQU7oMrsqj4,206
|
|
1199
1199
|
creme/creme_core/templates/creme_core/forms/widgets/efilter-condition-list.html,sha256=4z5rkpL3NN5HhqX2d2Kr9f2mYpIqjH3BwGXp-jOPspE,147
|
|
1200
1200
|
creme/creme_core/templates/creme_core/forms/widgets/enhanced-option.html,sha256=018bLoL4u89zXgVnWtZ4fcDWFsBp5WRifExpJeJmZUw,385
|
|
1201
|
-
creme/creme_core/templates/creme_core/forms/widgets/entity-selector.html,sha256=
|
|
1201
|
+
creme/creme_core/templates/creme_core/forms/widgets/entity-selector.html,sha256=linegWIeqYwbAbvBAdkTdy1lAadfSN8xNZZoGYlSBhs,625
|
|
1202
1202
|
creme/creme_core/templates/creme_core/forms/widgets/enumerable.html,sha256=DdZozPpGBeeFR0YhTud9QWKeXLN8VeuxyQub01Siqu0,609
|
|
1203
1203
|
creme/creme_core/templates/creme_core/forms/widgets/label.html,sha256=dYKuAsi2BuuLN9ds2ceeH7MOV5rNcZJJCxG-ph15o3c,223
|
|
1204
1204
|
creme/creme_core/templates/creme_core/forms/widgets/list-editor.html,sha256=d3Qe0LUImrqdzFXC3_NLphImjQan0ujiuH7kJM6xkxk,732
|
|
@@ -1333,7 +1333,7 @@ creme/creme_core/templates/creme_core/tests/test_datefield.html,sha256=syclYq3JQ
|
|
|
1333
1333
|
creme/creme_core/templates/creme_core/tests/test_editor.html,sha256=m8EXLrMOAaqD75h1PT1DQ1Gu3BWUAeLbexP6Ef9pU-A,349
|
|
1334
1334
|
creme/creme_core/templates/creme_core/tests/test_entityselector.html,sha256=vF8PRN29yrcdstllMlYZsZprwBcdLdsM3mBwLbmzt9E,36040
|
|
1335
1335
|
creme/creme_core/templates/creme_core/tests/test_filterselector.html,sha256=WN7oqmltY0xwm8sSPe9G8prjCZhbqLMZqhq-WPJW_M8,42520
|
|
1336
|
-
creme/creme_core/templates/creme_core/tests/test_frame.html,sha256=
|
|
1336
|
+
creme/creme_core/templates/creme_core/tests/test_frame.html,sha256=eF3hH-BCuemb11oRnJRzushUdkhWH5bxxGHxYayVEAo,25846
|
|
1337
1337
|
creme/creme_core/templates/creme_core/tests/test_listview.html,sha256=OLb9H-Qhj4ae-6R05w1QB_cyYS3YKdf002QTJQx0NX4,4511
|
|
1338
1338
|
creme/creme_core/templates/creme_core/tests/test_model.html,sha256=4Y9Y4Pc0JCr6cjI97R4PI_6-RPvGTAdON5ZZfShhyFs,9762
|
|
1339
1339
|
creme/creme_core/templates/creme_core/tests/test_polymorphicselector.html,sha256=FhmlFh6TS7XGax19WLKsmH4ePjAaYnQ7gt2ZxJlybJg,9226
|
|
@@ -1725,7 +1725,7 @@ creme/custom_entities/tests/test_models.py,sha256=SI0ewt2sKUvQDIraI1Y5SZTjiwKGnQ
|
|
|
1725
1725
|
creme/custom_entities/tests/test_views.py,sha256=Td4dxxrOJ8_YSgo_R1v_-7L6XERXd3dppUhZHgExUQs,26021
|
|
1726
1726
|
creme/documents/__init__.py,sha256=7fDaALo1aZ3JlDlJNATe3aw0HUnvHeKUMwxqZq755IU,1700
|
|
1727
1727
|
creme/documents/actions.py,sha256=Ufy0c0-BUvrgrY2UL3edXjBVSBtcvwz3eluej-tHIRE,2154
|
|
1728
|
-
creme/documents/apps.py,sha256=
|
|
1728
|
+
creme/documents/apps.py,sha256=Tb4vAAf_GpTSOryu8Kd4fEwYY6LTTLrUrknquyfoUjQ,6237
|
|
1729
1729
|
creme/documents/bricks.py,sha256=B5qb7zJ0qAn3sNy9TtI0HNKmQBFYX7Nn3--I9Z7aeNw,4717
|
|
1730
1730
|
creme/documents/cloners.py,sha256=MGtR-dJAKfbiiPunjWq3YqO3jkpgi8VmyTeMqiruMTU,1882
|
|
1731
1731
|
creme/documents/constants.py,sha256=lgXKOjuKwFL1l2o95ng6lPNlPKK5UKu-XIk_yA-0UFs,523
|
|
@@ -2313,7 +2313,7 @@ creme/mobile/apps.py,sha256=nQoeSXdWgj3SexxDSMRKOUCqb7MJa7KZaWIn5agPCQE,1657
|
|
|
2313
2313
|
creme/mobile/bricks.py,sha256=hm0ftqc7BvGqMr0t1zJ-z92D-FsKnPQMnOH-TGODfXY,2543
|
|
2314
2314
|
creme/mobile/forms.py,sha256=abiJfMTqQa_CGfC2gwr4iAwgZgwH7lzf_EtdTqI3zR8,4134
|
|
2315
2315
|
creme/mobile/models.py,sha256=YYJ4DOfmH7I3eh_9hHZALcBELLgZmSf3znkeHaKOskE,1447
|
|
2316
|
-
creme/mobile/populate.py,sha256=
|
|
2316
|
+
creme/mobile/populate.py,sha256=tnZ-7ilQYaIl5JDxI9YgQ0Xr7-KDj0d-p8qruV1ASw8,1886
|
|
2317
2317
|
creme/mobile/setting_keys.py,sha256=c8Tzsc84VueI0P8T8Cyqa5G7VHC8vyWYr8byKjpbw6I,1513
|
|
2318
2318
|
creme/mobile/urls.py,sha256=8Vu8DSuVIMPSBxjcGwLEQInIgA6_Yzvb1Zu7mvXwI1o,3644
|
|
2319
2319
|
creme/mobile/views.py,sha256=_AZapiZ_F2cZi7eVWXAUhoHSNUf4BSqSRdbKLA48_A0,23960
|
|
@@ -3821,7 +3821,7 @@ creme/vcfs/vcf_lib/utils.py,sha256=rofX2grUVZLg1qSYrvVLQe832rX9QDDqjqSfq9_rpnA,2
|
|
|
3821
3821
|
creme/vcfs/vcf_lib/vcard.py,sha256=EIDdegf8HC5f4j19tfJYQ1NKc_-NZO8NaYinpVwj7vQ,8275
|
|
3822
3822
|
creme/vcfs/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3823
3823
|
creme/vcfs/views/vcf.py,sha256=7rsRCL7U0cgwtYghN6yAAbNN_e5lJVGrLH5IpSOIPYI,3795
|
|
3824
|
-
creme_crm-2.7.dist-info/licenses/LICENSE.txt,sha256=fvS1_rSUtxH8CO9sMpw9BQFU3nLMK6ssGpyZU6ZVPMU,1130
|
|
3824
|
+
creme_crm-2.7.1.dist-info/licenses/LICENSE.txt,sha256=fvS1_rSUtxH8CO9sMpw9BQFU3nLMK6ssGpyZU6ZVPMU,1130
|
|
3825
3825
|
mediagenerator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3826
3826
|
mediagenerator/api.py,sha256=58FqOcH2NCJVdtKN_MxyW3xydWAYPBexTDa2LQTaMsY,1883
|
|
3827
3827
|
mediagenerator/base.py,sha256=2zr8DCnL48UgVM1M9LILuHTgT_xvKLMSwVnzGa47zCc,1003
|
|
@@ -3852,8 +3852,8 @@ mediagenerator/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
|
3852
3852
|
mediagenerator/management/commands/generatemedia.py,sha256=3-uIk3h83F16n2z7vG_xBteWiq7JWoB7d0vWSxVn-po,328
|
|
3853
3853
|
mediagenerator/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3854
3854
|
mediagenerator/templatetags/media.py,sha256=6EeohgP8srqzNRxgGr47BARO6Vx4AMn_dQuHwEQnnHE,1495
|
|
3855
|
-
creme_crm-2.7.dist-info/METADATA,sha256=
|
|
3856
|
-
creme_crm-2.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
3857
|
-
creme_crm-2.7.dist-info/entry_points.txt,sha256=GWm5VHgyz1DROd4UbhrelZ8d581uQNOtbjPz2TWfi_A,47
|
|
3858
|
-
creme_crm-2.7.dist-info/top_level.txt,sha256=y_WAe0QGma0mhzRFEOIVJsB-xJrvhHV6MEk862EMweA,21
|
|
3859
|
-
creme_crm-2.7.dist-info/RECORD,,
|
|
3855
|
+
creme_crm-2.7.1.dist-info/METADATA,sha256=16YLfXUrfuvXSG-Dz7C5LOPZMktPLmGYJwIUIqk1xlU,12181
|
|
3856
|
+
creme_crm-2.7.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
3857
|
+
creme_crm-2.7.1.dist-info/entry_points.txt,sha256=GWm5VHgyz1DROd4UbhrelZ8d581uQNOtbjPz2TWfi_A,47
|
|
3858
|
+
creme_crm-2.7.1.dist-info/top_level.txt,sha256=y_WAe0QGma0mhzRFEOIVJsB-xJrvhHV6MEk862EMweA,21
|
|
3859
|
+
creme_crm-2.7.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|