misc: use relative imports (#36517)
This commit is contained in:
parent
f215eda29d
commit
1b1e596d1f
|
@ -18,7 +18,7 @@
|
|||
|
||||
import random
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
from qommon.form import CompositeWidget, IntWidget, WidgetList, StringWidget, \
|
||||
from wcs.qommon.form import CompositeWidget, IntWidget, WidgetList, StringWidget, \
|
||||
CheckboxWidget, SingleSelectWidget
|
||||
from wcs.fields import WidgetField, register_field_class
|
||||
from pyvotecore import schulze_method, irv, ranked_pairs, schulze_pr, \
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
from quixote import get_publisher
|
||||
|
||||
from wcs.fields import WidgetField, register_field_class
|
||||
from qommon.form import *
|
||||
from wcs.qommon.form import *
|
||||
|
||||
class VoteAnonymityWidget(CheckboxWidget):
|
||||
vote_anonymity = 'anonymous'
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
import random
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
from qommon.form import *
|
||||
from wcs.qommon.form import *
|
||||
from wcs.fields import WidgetField, register_field_class
|
||||
|
||||
class RankedItemsWidget(CompositeWidget):
|
||||
|
|
|
@ -28,7 +28,7 @@ from quixote.http_request import Upload as QuixoteUpload
|
|||
|
||||
from wcs.qommon import errors, sessions
|
||||
from wcs.qommon.form import UploadedFile
|
||||
from qommon.ident.password_accounts import PasswordAccount
|
||||
from wcs.qommon.ident.password_accounts import PasswordAccount
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
from wcs.qommon.template import get_current_theme
|
||||
from wcs.qommon.bounces import Bounce
|
||||
|
@ -4501,7 +4501,7 @@ def test_settings_idp(pub):
|
|||
resp = resp.forms[0].submit() # confirm delete
|
||||
assert len(pub.cfg['idp']) == 0
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
idp_metadata_filename = os.path.join(os.path.dirname(__file__), 'idp_metadata.xml')
|
||||
urlopen.side_effect = lambda *args: open(idp_metadata_filename)
|
||||
resp = app.get('/backoffice/settings/identification/idp/idp/')
|
||||
|
|
|
@ -530,7 +530,7 @@ def test_formdef_schema(pub):
|
|||
formdef.workflow_id = workflow.id
|
||||
formdef.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO('''\
|
||||
{"data": [{"id": 0, "text": "zéro", "foo": "bar"}, \
|
||||
{"id": 1, "text": "uné", "foo": "bar1"}, \
|
||||
|
@ -1282,9 +1282,8 @@ def test_formdata_with_workflow_data(pub, local_user):
|
|||
formdata.status = 'wf-new'
|
||||
formdata.evolution[-1].status = 'wf-new'
|
||||
|
||||
from qommon.form import PicklableUpload as PicklableUpload2
|
||||
from wcs.qommon.form import PicklableUpload as PicklableUpload3
|
||||
upload = PicklableUpload2('test.txt', 'text/plain', 'ascii')
|
||||
upload = PicklableUpload3('test.txt', 'text/plain', 'ascii')
|
||||
upload.receive(['test'])
|
||||
upload2 = PicklableUpload3('test.txt', 'text/plain', 'ascii')
|
||||
upload2.receive(['test'])
|
||||
|
@ -2547,7 +2546,7 @@ def test_get_secret_and_orig(no_request_pub):
|
|||
assert orig == 'example.net'
|
||||
|
||||
def test_reverse_geocoding(pub):
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO(json.dumps({'address': 'xxx'}))
|
||||
get_app(pub).get('/api/reverse-geocoding', status=400)
|
||||
resp = get_app(pub).get('/api/reverse-geocoding?lat=0&lon=0')
|
||||
|
@ -2603,7 +2602,7 @@ def test_formdef_submit_structured(pub, local_user):
|
|||
'?format=json&orig=coucou&email=%s' % urllib.quote(local_user.email), '1234')
|
||||
return signed_url[len('http://example.net'):]
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO('''\
|
||||
{"data": [{"id": 0, "text": "zéro", "foo": "bar"}, \
|
||||
{"id": 1, "text": "uné", "foo": "bar1"}, \
|
||||
|
@ -2634,7 +2633,7 @@ def test_formdef_submit_structured(pub, local_user):
|
|||
|
||||
|
||||
def test_geocoding(pub):
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO(json.dumps([{'lat': 0, 'lon': 0}]))
|
||||
get_app(pub).get('/api/geocoding', status=400)
|
||||
resp = get_app(pub).get('/api/geocoding?q=test')
|
||||
|
|
|
@ -22,11 +22,11 @@ except ImportError:
|
|||
xlwt = None
|
||||
|
||||
from quixote import cleanup, get_publisher
|
||||
from qommon import ods
|
||||
from wcs.qommon import ods
|
||||
from wcs.api_utils import sign_url
|
||||
from wcs.qommon import errors, sessions
|
||||
from wcs.qommon.form import PicklableUpload
|
||||
from qommon.ident.password_accounts import PasswordAccount
|
||||
from wcs.qommon.ident.password_accounts import PasswordAccount
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
from wcs.roles import Role
|
||||
from wcs.workflows import (Workflow, CommentableWorkflowStatusItem,
|
||||
|
@ -2899,7 +2899,7 @@ def test_backoffice_wfedit_and_data_source_with_user_info(pub):
|
|||
|
||||
app = login(get_app(pub))
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': 'A', 'text': 'hello'}, {'id': 'B', 'text': 'world'}]}
|
||||
def side_effect(url, *args):
|
||||
assert '?name_id=admin' in url
|
||||
|
@ -4023,7 +4023,7 @@ def test_backoffice_workflow_form_with_live_data_source(pub):
|
|||
|
||||
app = get_app(pub)
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data1 = {'data': [{'id': 'A', 'text': 'hello'}, {'id': 'B', 'text': 'world'}]}
|
||||
data2 = {'data': [{'id': 'C', 'text': 'hello'}, {'id': 'D', 'text': 'world'}]}
|
||||
def side_effect(url, *args):
|
||||
|
|
|
@ -387,7 +387,7 @@ def test_data_source_unicode():
|
|||
|
||||
data_source2 = NamedDataSource.select()[0]
|
||||
assert data_source2.data_source == data_source.data_source
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO(
|
||||
'{"data": [{"id": 0, "text": "zéro"}, {"id": 1, "text": "uné"}, {"id": 2, "text": "deux"}]}')
|
||||
assert data_sources.get_items({'type': 'foobar'}) == [
|
||||
|
@ -403,7 +403,7 @@ def test_data_source_signed(no_request_pub):
|
|||
data_source.data_source = {'type': 'json', 'value': "https://api.example.com/json"}
|
||||
data_source.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO(
|
||||
'{"data": [{"id": 0, "text": "zero"}]}')
|
||||
assert len(data_sources.get_items({'type': 'foobar'})) == 1
|
||||
|
@ -420,7 +420,7 @@ def test_data_source_signed(no_request_pub):
|
|||
|
||||
data_source.data_source = {'type': 'json', 'value': "https://api.example.com/json?foo=bar"}
|
||||
data_source.store()
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO(
|
||||
'{"data": [{"id": 0, "text": "zero"}]}')
|
||||
assert len(data_sources.get_items({'type': 'foobar'})) == 1
|
||||
|
@ -437,7 +437,7 @@ def test_data_source_signed(no_request_pub):
|
|||
|
||||
data_source.data_source = {'type': 'json', 'value': "https://no-secret.example.com/json"}
|
||||
data_source.store()
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO(
|
||||
'{"data": [{"id": 0, "text": "zero"}]}')
|
||||
assert len(data_sources.get_items({'type': 'foobar'})) == 1
|
||||
|
@ -450,7 +450,7 @@ def test_named_datasource_json_cache(requests_pub):
|
|||
datasource.data_source = {'type': 'json', 'value': 'http://whatever/'}
|
||||
datasource.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
urlopen.side_effect = lambda *args: StringIO(
|
||||
json.dumps({'data': [{'id': '1', 'text': 'foo'}, {'id': '2', 'text': 'bar'}]}))
|
||||
|
||||
|
|
|
@ -144,8 +144,8 @@ def test_fc_login_page(caplog):
|
|||
}
|
||||
|
||||
assert pub.user_class.count() == 0
|
||||
with mock.patch('qommon.ident.franceconnect.http_post_request') as http_post_request, \
|
||||
mock.patch('qommon.ident.franceconnect.http_get_page') as http_get_page:
|
||||
with mock.patch('wcs.qommon.ident.franceconnect.http_post_request') as http_post_request, \
|
||||
mock.patch('wcs.qommon.ident.franceconnect.http_get_page') as http_get_page:
|
||||
http_post_request.return_value = (None, 200, json.dumps(token_result), None)
|
||||
http_get_page.return_value = (None, 200, json.dumps(user_info_result), None)
|
||||
resp = app.get('/ident/fc/callback?%s' % urllib.urlencode({
|
||||
|
@ -197,8 +197,8 @@ def test_fc_login_page(caplog):
|
|||
id_token['nonce'] = qs['nonce'][0]
|
||||
token_result['id_token'] = '.%s.' % base64url_encode(json.dumps(id_token))
|
||||
|
||||
with mock.patch('qommon.ident.franceconnect.http_post_request') as http_post_request, \
|
||||
mock.patch('qommon.ident.franceconnect.http_get_page') as http_get_page:
|
||||
with mock.patch('wcs.qommon.ident.franceconnect.http_post_request') as http_post_request, \
|
||||
mock.patch('wcs.qommon.ident.franceconnect.http_get_page') as http_get_page:
|
||||
http_post_request.return_value = (None, 200, json.dumps(token_result), None)
|
||||
http_get_page.return_value = (None, 200, json.dumps(user_info_result), None)
|
||||
resp = app.get('/ident/fc/callback?%s' % urllib.urlencode({
|
||||
|
@ -245,8 +245,8 @@ def test_fc_login_page(caplog):
|
|||
'family_name': 'Deux',
|
||||
# 'email': 'john.deux@example.com', # missing
|
||||
}
|
||||
with mock.patch('qommon.ident.franceconnect.http_post_request') as http_post_request, \
|
||||
mock.patch('qommon.ident.franceconnect.http_get_page') as http_get_page:
|
||||
with mock.patch('wcs.qommon.ident.franceconnect.http_post_request') as http_post_request, \
|
||||
mock.patch('wcs.qommon.ident.franceconnect.http_get_page') as http_get_page:
|
||||
http_post_request.return_value = (None, 200, json.dumps(token_result), None)
|
||||
http_get_page.return_value = (None, 200, json.dumps(bad_user_info_result), None)
|
||||
resp = app.get('/ident/fc/callback?%s' % urllib.urlencode({
|
||||
|
|
|
@ -8,7 +8,7 @@ import pytest
|
|||
|
||||
from quixote import cleanup
|
||||
from quixote.http_request import Upload
|
||||
from qommon.http_request import HTTPRequest
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
from wcs.qommon import sessions
|
||||
from wcs import fields
|
||||
from wcs.qommon.form import Form
|
||||
|
|
|
@ -850,7 +850,7 @@ def test_form_multi_page_many_conditions(pub):
|
|||
formdef.store()
|
||||
formdef.data_class().wipe()
|
||||
|
||||
with mock.patch('qommon.publisher.Substitutions.invalidate_cache') as invalidate_cache:
|
||||
with mock.patch('wcs.qommon.publisher.Substitutions.invalidate_cache') as invalidate_cache:
|
||||
resp = get_app(pub).get('/test/')
|
||||
call_count = invalidate_cache.call_count
|
||||
|
||||
|
@ -861,7 +861,7 @@ def test_form_multi_page_many_conditions(pub):
|
|||
formdef.store()
|
||||
|
||||
# check the cache doesn't get invalidated for every page
|
||||
with mock.patch('qommon.publisher.Substitutions.invalidate_cache') as invalidate_cache:
|
||||
with mock.patch('wcs.qommon.publisher.Substitutions.invalidate_cache') as invalidate_cache:
|
||||
resp = get_app(pub).get('/test/')
|
||||
assert invalidate_cache.call_count == call_count
|
||||
|
||||
|
@ -2496,7 +2496,7 @@ def test_form_page_formula_prefill_items_field(pub):
|
|||
data_source=ds, display_disabled_items=True,
|
||||
prefill={'type': 'formula', 'value': '["2"]'})]
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello'}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -4948,7 +4948,7 @@ def test_item_field_with_disabled_items(http_requests, pub):
|
|||
data_source=ds, display_disabled_items=True)]
|
||||
formdef.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello'}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -4961,7 +4961,7 @@ def test_item_field_with_disabled_items(http_requests, pub):
|
|||
|
||||
formdef.data_class().wipe()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'disabled': True}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -4986,7 +4986,7 @@ def test_item_field_with_disabled_items(http_requests, pub):
|
|||
display_disabled_items=False)]
|
||||
formdef.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'disabled': True}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -5003,7 +5003,7 @@ def test_item_field_with_disabled_items(http_requests, pub):
|
|||
data_source=ds, display_mode='radio', display_disabled_items=True)]
|
||||
formdef.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello'}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -5016,7 +5016,7 @@ def test_item_field_with_disabled_items(http_requests, pub):
|
|||
|
||||
formdef.data_class().wipe()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'disabled': True}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -5045,7 +5045,7 @@ def test_items_field_with_disabled_items(http_requests, pub):
|
|||
data_source=ds, display_disabled_items=True)]
|
||||
formdef.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello'}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -5058,7 +5058,7 @@ def test_items_field_with_disabled_items(http_requests, pub):
|
|||
|
||||
formdef.data_class().wipe()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'disabled': True}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -5075,7 +5075,7 @@ def test_items_field_with_disabled_items(http_requests, pub):
|
|||
data_source=ds, display_disabled_items=False)]
|
||||
formdef.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'disabled': True}, {'id': '2', 'text': 'world'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = get_app(pub).get('/test/')
|
||||
|
@ -5104,7 +5104,7 @@ def test_item_field_autocomplete_json_source(http_requests, pub):
|
|||
]
|
||||
formdef.store()
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'},
|
||||
{'id': '2', 'text': 'world', 'extra': 'bar'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
|
@ -5121,7 +5121,7 @@ def test_item_field_autocomplete_json_source(http_requests, pub):
|
|||
# check hint is displayed within
|
||||
formdef.fields[0].hint = 'help text'
|
||||
formdef.store()
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'},
|
||||
{'id': '2', 'text': 'world', 'extra': 'bar'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
|
@ -5141,7 +5141,7 @@ def test_item_field_autocomplete_json_source(http_requests, pub):
|
|||
formdef.data_class().wipe()
|
||||
|
||||
app = get_app(pub)
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'},
|
||||
{'id': '2', 'text': 'world', 'extra': 'bar'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
|
@ -5150,7 +5150,7 @@ def test_item_field_autocomplete_json_source(http_requests, pub):
|
|||
pq = resp.pyquery.remove_namespaces()
|
||||
select2_url = pq('select').attr['data-select2-url']
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp2 = app.get(select2_url + '?q=hell')
|
||||
|
@ -5166,7 +5166,7 @@ def test_item_field_autocomplete_json_source(http_requests, pub):
|
|||
resp.form['f0'].force_value('1')
|
||||
resp.form.fields['f0_display'].force_value('hello')
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = resp.form.submit('submit') # -> validation page
|
||||
|
@ -5175,7 +5175,7 @@ def test_item_field_autocomplete_json_source(http_requests, pub):
|
|||
assert resp.form['f0'].value == '1'
|
||||
assert resp.form['f0_label'].value == 'hello'
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = resp.form.submit('submit') # -> submit
|
||||
|
@ -5193,7 +5193,7 @@ remote.example.net = 1234
|
|||
''')
|
||||
|
||||
app = get_app(pub)
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'},
|
||||
{'id': '2', 'text': 'world', 'extra': 'bar'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
|
@ -5202,7 +5202,7 @@ remote.example.net = 1234
|
|||
pq = resp.pyquery.remove_namespaces()
|
||||
select2_url = pq('select').attr['data-select2-url']
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp2 = app.get(select2_url + '?q=hell')
|
||||
|
@ -5215,7 +5215,7 @@ remote.example.net = 1234
|
|||
resp.form['f0'].force_value('1')
|
||||
resp.form.fields['f0_display'].force_value('hello')
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = resp.form.submit('submit') # -> validation page
|
||||
|
@ -5224,7 +5224,7 @@ remote.example.net = 1234
|
|||
assert resp.form['f0'].value == '1'
|
||||
assert resp.form['f0_label'].value == 'hello'
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
resp = resp.form.submit('submit') # -> submit
|
||||
|
@ -5240,7 +5240,7 @@ remote.example.net = 1234
|
|||
formdef.store()
|
||||
|
||||
app = get_app(pub)
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
data = {'data': [{'id': '1', 'text': 'hello', 'extra': 'foo'},
|
||||
{'id': '2', 'text': 'world', 'extra': 'bar'}]}
|
||||
urlopen.side_effect = lambda *args: StringIO.StringIO(json.dumps(data))
|
||||
|
@ -5274,7 +5274,7 @@ def test_item_field_autocomplete_jsonp_source(http_requests, pub):
|
|||
formdef.store()
|
||||
|
||||
app = get_app(pub)
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
resp = app.get('/test/')
|
||||
assert urlopen.call_count == 0
|
||||
pq = resp.pyquery.remove_namespaces()
|
||||
|
@ -5287,13 +5287,13 @@ def test_item_field_autocomplete_jsonp_source(http_requests, pub):
|
|||
resp.form['f0'].force_value('1')
|
||||
resp.form['f0_display'].force_value('hello')
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
resp = resp.form.submit('submit') # -> validation page
|
||||
assert urlopen.call_count == 0
|
||||
assert resp.form['f0'].value == '1'
|
||||
assert resp.form['f0_label'].value == 'hello'
|
||||
|
||||
with mock.patch('qommon.misc.urlopen') as urlopen:
|
||||
with mock.patch('wcs.qommon.misc.urlopen') as urlopen:
|
||||
resp = resp.form.submit('submit') # -> submit
|
||||
assert urlopen.call_count == 0
|
||||
assert formdef.data_class().select()[0].data['0'] == '1'
|
||||
|
|
|
@ -7,8 +7,8 @@ import time
|
|||
|
||||
from quixote import cleanup
|
||||
from quixote.http_request import Upload
|
||||
from qommon.template import Template
|
||||
from qommon.form import PicklableUpload
|
||||
from wcs.qommon.template import Template
|
||||
from wcs.qommon.form import PicklableUpload
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
from wcs import fields, formdef
|
||||
from wcs.categories import Category
|
||||
|
|
|
@ -13,7 +13,7 @@ from wcs.categories import Category
|
|||
from wcs.formdef import FormDef, fields, FormdefImportError
|
||||
from wcs.workflows import Workflow
|
||||
from wcs.roles import Role
|
||||
from qommon.misc import indent_xml as indent
|
||||
from wcs.qommon.misc import indent_xml as indent
|
||||
|
||||
from utilities import create_temporary_pub
|
||||
|
||||
|
|
|
@ -182,7 +182,7 @@ def test_cron_command():
|
|||
|
||||
# simulate another locked cron
|
||||
import tempfile
|
||||
from qommon.vendor import locket
|
||||
from wcs.qommon.vendor import locket
|
||||
lockfile = os.path.join(tempfile.gettempdir(), 'wcs-cron-in-progress.lock')
|
||||
with locket.lock_file(lockfile, timeout=0):
|
||||
with mock.patch('wcs.qommon.management.commands.cron.cron_worker') as cron_worker:
|
||||
|
|
|
@ -4,7 +4,7 @@ import cPickle
|
|||
|
||||
from utilities import create_temporary_pub, clean_temporary_pub
|
||||
|
||||
from qommon.storage import StorableObject
|
||||
from wcs.qommon.storage import StorableObject
|
||||
from wcs.roles import Role, get_user_roles
|
||||
|
||||
def setup_module(module):
|
||||
|
|
|
@ -6,8 +6,8 @@ import string
|
|||
|
||||
from django.test import override_settings
|
||||
from quixote import cleanup
|
||||
from qommon.substitution import CompatibilityNamesDict
|
||||
from qommon.template import Template, TemplateError
|
||||
from wcs.qommon.substitution import CompatibilityNamesDict
|
||||
from wcs.qommon.template import Template, TemplateError
|
||||
from wcs.conditions import Condition
|
||||
from wcs.variables import LazyFormData
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem
|
|||
from wcs.roles import Role
|
||||
from wcs.fields import StringField
|
||||
|
||||
from qommon.misc import indent_xml as indent
|
||||
from wcs.qommon.misc import indent_xml as indent
|
||||
|
||||
from utilities import create_temporary_pub, clean_temporary_pub
|
||||
|
||||
|
|
|
@ -13,10 +13,10 @@ import mock
|
|||
from django.utils.six import StringIO
|
||||
|
||||
from quixote import cleanup, get_response
|
||||
from qommon.errors import ConnectionError
|
||||
from wcs.qommon.errors import ConnectionError
|
||||
from quixote.http_request import Upload as QuixoteUpload
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
from qommon.form import *
|
||||
from wcs.qommon.form import *
|
||||
|
||||
from wcs.formdef import FormDef
|
||||
from wcs import sessions
|
||||
|
@ -2221,7 +2221,7 @@ def test_sms_with_passerelle(pub):
|
|||
item.body = 'my message'
|
||||
with mock.patch('wcs.wscalls.get_secret_and_orig') as mocked_secret_and_orig:
|
||||
mocked_secret_and_orig.return_value = ('secret', 'localhost')
|
||||
with mock.patch('qommon.misc._http_request') as mocked_http_post:
|
||||
with mock.patch('wcs.qommon.misc._http_request') as mocked_http_post:
|
||||
mocked_http_post.return_value = ('response', '200', 'data', 'headers')
|
||||
item.perform(formdata)
|
||||
url = mocked_http_post.call_args[0][0]
|
||||
|
|
|
@ -25,8 +25,7 @@ from wcs.users import User
|
|||
from wcs.tracking_code import TrackingCode
|
||||
import wcs.qommon.emails
|
||||
import wcs.qommon.sms
|
||||
import qommon.sms
|
||||
from qommon.errors import ConnectionError
|
||||
from wcs.qommon.errors import ConnectionError
|
||||
|
||||
import wcs.middleware
|
||||
|
||||
|
@ -264,18 +263,13 @@ class EmailsMocking(object):
|
|||
|
||||
def __enter__(self):
|
||||
self.wcs_create_smtp_server = sys.modules['wcs.qommon.emails'].create_smtp_server
|
||||
self.qommon_create_smtp_server = sys.modules['qommon.emails'].create_smtp_server
|
||||
|
||||
sys.modules['wcs.qommon.emails'].create_smtp_server = self.create_smtp_server
|
||||
sys.modules['qommon.emails'].create_smtp_server = self.create_smtp_server
|
||||
|
||||
self.emails = {}
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_value, tb):
|
||||
del self.emails
|
||||
sys.modules['wcs.qommon.emails'].create_smtp_server = self.wcs_create_smtp_server
|
||||
sys.modules['qommon.emails'].create_smtp_server = self.qommon_create_smtp_server
|
||||
|
||||
|
||||
class MockSubstitutionVariables(object):
|
||||
|
@ -290,24 +284,14 @@ class HttpRequestsMocking(object):
|
|||
|
||||
def __enter__(self):
|
||||
import wcs.qommon.misc
|
||||
import qommon.misc
|
||||
|
||||
self.wcs_qommon_misc_http_request = wcs.qommon.misc._http_request
|
||||
self.qommon_misc_http_request = qommon.misc._http_request
|
||||
|
||||
wcs.qommon.misc._http_request = self.http_request
|
||||
qommon.misc._http_request = self.http_request
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_value, tb):
|
||||
import wcs.qommon.misc
|
||||
import qommon.misc
|
||||
|
||||
wcs.qommon.misc._http_request = self.wcs_qommon_misc_http_request
|
||||
qommon.misc._http_request = self.qommon_misc_http_request
|
||||
|
||||
del self.wcs_qommon_misc_http_request
|
||||
del self.qommon_misc_http_request
|
||||
|
||||
def http_request(self, url, method='GET', body=None, headers={},
|
||||
cert_file=None, timeout=None, raise_on_http_errors=False):
|
||||
|
@ -397,12 +381,9 @@ class SMSMocking(wcs.qommon.sms.MobytSMS):
|
|||
def __enter__(self):
|
||||
self.sms = []
|
||||
self.wcs_get_sms_class = wcs.qommon.sms.SMS.get_sms_class
|
||||
self.qommon_get_sms_class = qommon.sms.SMS.get_sms_class
|
||||
wcs.qommon.sms.SMS.get_sms_class = self.get_sms_class
|
||||
qommon.sms.SMS.get_sms_class = self.get_sms_class
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_value, tb):
|
||||
del self.sms
|
||||
wcs.qommon.sms.SMS.get_sms_class = self.wcs_get_sms_class
|
||||
qommon.sms.SMS.get_sms_class = self.qommon_get_sms_class
|
||||
|
|
|
@ -18,12 +18,5 @@ import sys
|
|||
import os
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
|
||||
import monkeypatch
|
||||
|
||||
import qommon
|
||||
sys.modules['qommon'] = sys.modules['wcs.qommon']
|
||||
|
||||
import qommon.form
|
||||
sys.modules['form'] = qommon.form
|
||||
|
||||
import compat
|
||||
from . import monkeypatch
|
||||
from . import compat
|
||||
|
|
|
@ -14,4 +14,4 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from root import RootDirectory
|
||||
from .root import RootDirectory
|
||||
|
|
|
@ -21,15 +21,15 @@ from quixote import get_response, redirect
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
|
||||
from qommon import _
|
||||
from qommon import errors
|
||||
from qommon import misc
|
||||
from qommon.bounces import Bounce
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.admin.menu import command_icon
|
||||
from ..qommon import _
|
||||
from ..qommon import errors
|
||||
from ..qommon import misc
|
||||
from ..qommon.bounces import Bounce
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon.admin.menu import command_icon
|
||||
|
||||
from qommon.form import *
|
||||
from qommon.misc import get_cfg
|
||||
from ..qommon.form import *
|
||||
from ..qommon.misc import get_cfg
|
||||
|
||||
def get_email_type_label(type):
|
||||
from settings import EmailsDirectory
|
||||
|
|
|
@ -18,10 +18,10 @@ from quixote import redirect
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from ..qommon import _
|
||||
from wcs.categories import Category
|
||||
from qommon.form import *
|
||||
from qommon.backoffice.menu import html_top
|
||||
from ..qommon.form import *
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
|
||||
from wcs.formdef import FormDef
|
||||
|
||||
|
|
|
@ -18,11 +18,11 @@ from quixote import redirect
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon import template
|
||||
from qommon.form import *
|
||||
from qommon.misc import json_response
|
||||
from qommon.backoffice.menu import html_top
|
||||
from ..qommon import _
|
||||
from ..qommon import template
|
||||
from ..qommon.form import *
|
||||
from ..qommon.misc import json_response
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from wcs.data_sources import (NamedDataSource, DataSourceSelectionWidget,
|
||||
get_structured_items)
|
||||
from wcs.formdef import FormDef
|
||||
|
|
|
@ -20,11 +20,11 @@ from quixote import redirect
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext, htmlescape
|
||||
|
||||
from qommon import _
|
||||
from qommon.form import *
|
||||
from qommon import errors, misc
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.admin.menu import command_icon
|
||||
from ..qommon import _
|
||||
from ..qommon.form import *
|
||||
from ..qommon import errors, misc
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon.admin.menu import command_icon
|
||||
|
||||
from wcs import fields
|
||||
from wcs.formdef import FormDef
|
||||
|
|
|
@ -28,15 +28,15 @@ from quixote import get_response, redirect
|
|||
from quixote.directory import Directory, AccessControlled
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon import misc
|
||||
from qommon.errors import *
|
||||
from qommon.form import *
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon import get_logger
|
||||
from qommon.misc import C_
|
||||
from ..qommon import _
|
||||
from ..qommon import misc
|
||||
from ..qommon.errors import *
|
||||
from ..qommon.form import *
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon import get_logger
|
||||
from ..qommon.misc import C_
|
||||
|
||||
from qommon.afterjobs import AfterJob
|
||||
from ..qommon.afterjobs import AfterJob
|
||||
|
||||
from wcs.formdef import FormDef, FormdefImportError, FormdefImportRecoverableError
|
||||
from wcs.categories import Category
|
||||
|
@ -44,7 +44,7 @@ from wcs.roles import Role, logged_users_role, get_user_roles
|
|||
from wcs.workflows import Workflow
|
||||
from wcs.forms.root import qrcode
|
||||
|
||||
from fields import FieldDefPage, FieldsDirectory
|
||||
from .fields import FieldDefPage, FieldsDirectory
|
||||
from .categories import CategoriesDirectory
|
||||
from .data_sources import NamedDataSourcesDirectory
|
||||
from .logged_errors import LoggedErrorsDirectory
|
||||
|
|
|
@ -19,9 +19,9 @@ import re
|
|||
from quixote import get_response, get_publisher, redirect
|
||||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
from qommon import _, ngettext
|
||||
from qommon import errors, get_cfg
|
||||
from qommon.misc import localstrftime
|
||||
from ..qommon import _, ngettext
|
||||
from ..qommon import errors, get_cfg
|
||||
from ..qommon.misc import localstrftime
|
||||
|
||||
from wcs.logged_errors import LoggedError
|
||||
|
||||
|
|
|
@ -18,11 +18,11 @@ from quixote import redirect
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _, get_cfg
|
||||
from qommon import errors
|
||||
from qommon.form import *
|
||||
from ..qommon import _, get_cfg
|
||||
from ..qommon import errors
|
||||
from ..qommon.form import *
|
||||
|
||||
from qommon.backoffice.menu import html_top
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
|
||||
from wcs.roles import Role, get_user_roles
|
||||
from wcs.formdef import FormDef
|
||||
|
|
|
@ -33,24 +33,23 @@ from quixote import get_publisher, get_request, get_response, redirect
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon import get_cfg
|
||||
from qommon import errors
|
||||
from qommon import misc
|
||||
from qommon import template
|
||||
from qommon.form import *
|
||||
from qommon.sms import SMS
|
||||
from ..qommon import _
|
||||
from ..qommon import get_cfg
|
||||
from ..qommon import errors
|
||||
from ..qommon import misc
|
||||
from ..qommon import template
|
||||
from ..qommon.form import *
|
||||
from ..qommon.sms import SMS
|
||||
|
||||
from qommon.afterjobs import AfterJob
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.admin.menu import error_page
|
||||
from qommon.admin.cfg import cfg_submit
|
||||
from qommon.admin.emails import EmailsDirectory
|
||||
from ..qommon.afterjobs import AfterJob
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon.admin.menu import error_page
|
||||
from ..qommon.admin.cfg import cfg_submit
|
||||
from ..qommon.admin.emails import EmailsDirectory
|
||||
from wcs.qommon.admin.texts import TextsDirectory
|
||||
from qommon.admin.settings import SettingsDirectory as QommonSettingsDirectory
|
||||
from qommon.admin.logger import LoggerDirectory
|
||||
import qommon.ident
|
||||
import qommon.template
|
||||
from ..qommon.admin.settings import SettingsDirectory as QommonSettingsDirectory
|
||||
from ..qommon.admin.logger import LoggerDirectory
|
||||
from ..qommon import ident
|
||||
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.carddef import CardDef
|
||||
|
@ -108,7 +107,7 @@ authentication is unavailable. Lasso must be installed to use it.'))
|
|||
|
||||
def _q_lookup(self, component):
|
||||
get_response().breadcrumb.append( ('identification/', _('Identification')) )
|
||||
return qommon.ident.get_method_admin_directory(component)
|
||||
return ident.get_method_admin_directory(component)
|
||||
|
||||
|
||||
class UserFieldDefPage(FieldDefPage):
|
||||
|
@ -204,7 +203,7 @@ class UserFieldsFormDef(FormDef):
|
|||
self.publisher.cfg['users'] = users_cfg
|
||||
self.publisher.write_cfg()
|
||||
if self.publisher.is_using_postgresql():
|
||||
import sql
|
||||
from wcs import sql
|
||||
sql.do_user_table()
|
||||
sql.do_tracking_code_table()
|
||||
sql.do_session_table()
|
||||
|
@ -371,12 +370,12 @@ class ThemePreviewDirectory(Directory):
|
|||
|
||||
if path[1] in ('backoffice', 'admin') or \
|
||||
get_request().get_method() == 'POST':
|
||||
from qommon.template import error_page as base_error_page
|
||||
from ..qommon.template import error_page as base_error_page
|
||||
output = base_error_page(_("The theme preview doesn't support this."))
|
||||
else:
|
||||
output = root_directory._q_traverse(path[1:])
|
||||
|
||||
from qommon.template import decorate
|
||||
from ..qommon.template import decorate
|
||||
if isinstance(output, template.QommonTemplateResponse):
|
||||
output = template.render(output.templates, output.context)
|
||||
theme_preview = decorate(output, response)
|
||||
|
@ -440,7 +439,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
identification_cfg = get_cfg('identification', {})
|
||||
for method in identification_cfg.get('methods', []):
|
||||
try:
|
||||
method_admin = qommon.ident.get_method_admin_directory(method)
|
||||
method_admin = ident.get_method_admin_directory(method)
|
||||
except AttributeError:
|
||||
continue
|
||||
|
||||
|
@ -637,7 +636,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
r += htmltext('<a rel="popup" href="install_theme">%s</a>') % _('Install New Theme')
|
||||
|
||||
r += htmltext('<form action="themes" enctype="multipart/form-data" method="post">')
|
||||
themes = qommon.template.get_themes_dict()
|
||||
themes = template.get_themes_dict()
|
||||
r += htmltext('<ul class="biglist themes">')
|
||||
for theme, theme_dict in sorted(themes.items()):
|
||||
label = theme_dict.get('label')
|
||||
|
@ -670,7 +669,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
r += htmltext('</form>')
|
||||
return r.getvalue()
|
||||
else:
|
||||
themes = qommon.template.get_themes()
|
||||
themes = template.get_themes()
|
||||
if themes.has_key(str(request.form['theme'])):
|
||||
branding_cfg = get_cfg('branding', {})
|
||||
branding_cfg[str('theme')] = str(request.form['theme'])
|
||||
|
@ -683,7 +682,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
if not theme_id:
|
||||
return redirect('themes')
|
||||
|
||||
theme_directory = qommon.template.get_theme_directory(theme_id)
|
||||
theme_directory = template.get_theme_directory(theme_id)
|
||||
if not theme_directory:
|
||||
return redirect('themes')
|
||||
|
||||
|
@ -752,7 +751,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
get_session().message = ('error', _('Theme is missing a desc.xml file.'))
|
||||
return redirect('themes')
|
||||
desc_xml = z.read('%s/desc.xml' % theme_name)
|
||||
theme_dict = qommon.template.get_theme_dict(StringIO(desc_xml))
|
||||
theme_dict = template.get_theme_dict(StringIO(desc_xml))
|
||||
if theme_dict.get('name') != theme_name:
|
||||
get_session().message = ('error', _('desc.xml is missing a name attribute.'))
|
||||
return redirect('themes')
|
||||
|
@ -779,7 +778,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
return self.install_theme_from_file(StringIO(fp.read()))
|
||||
|
||||
def template(self):
|
||||
from qommon.template import get_default_ezt_template
|
||||
from wcs.qommon.template import get_default_ezt_template
|
||||
default_template_ezt = get_default_ezt_template()
|
||||
branding_cfg = get_cfg('branding', {})
|
||||
template = branding_cfg.get('template', default_template_ezt)
|
||||
|
@ -811,7 +810,7 @@ class SettingsDirectory(QommonSettingsDirectory):
|
|||
return r.getvalue()
|
||||
|
||||
def template_submit(self, form = None):
|
||||
from qommon.template import DEFAULT_TEMPLATE_EZT, get_default_ezt_template
|
||||
from wcs.qommon.template import DEFAULT_TEMPLATE_EZT, get_default_ezt_template
|
||||
theme_default_template_ezt = get_default_ezt_template()
|
||||
|
||||
get_publisher().reload_cfg()
|
||||
|
|
|
@ -18,19 +18,19 @@ from quixote import get_publisher, get_response, get_request, get_session, redir
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from ..qommon import _
|
||||
import wcs.qommon.storage as st
|
||||
from qommon import errors
|
||||
from qommon import misc, get_cfg
|
||||
from qommon.backoffice.listing import pagination_links
|
||||
from ..qommon import errors
|
||||
from ..qommon import misc, get_cfg
|
||||
from ..qommon.backoffice.listing import pagination_links
|
||||
from wcs.roles import Role
|
||||
|
||||
import qommon.ident
|
||||
from qommon.ident.idp import is_idp_managing_user_attributes, is_idp_managing_user_roles
|
||||
from qommon.form import *
|
||||
from qommon.admin.emails import EmailsDirectory
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.admin.menu import error_page
|
||||
from ..qommon import ident
|
||||
from ..qommon.ident.idp import is_idp_managing_user_attributes, is_idp_managing_user_roles
|
||||
from ..qommon.form import *
|
||||
from ..qommon.admin.emails import EmailsDirectory
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon.admin.menu import error_page
|
||||
|
||||
class UserUI(object):
|
||||
def __init__(self, user):
|
||||
|
@ -65,7 +65,7 @@ class UserUI(object):
|
|||
'render_br': False,
|
||||
'options': [(None, '---', None)] + [(x.id, x.name, x.id) for x in roles]})
|
||||
|
||||
for klass in [x for x in qommon.ident.get_method_classes() if x.key in ident_methods]:
|
||||
for klass in [x for x in ident.get_method_classes() if x.key in ident_methods]:
|
||||
if klass.method_admin_widget:
|
||||
value = klass().get_value(self.user)
|
||||
form.add(klass.method_admin_widget, 'method_%s' % klass.key, required = False,
|
||||
|
@ -94,7 +94,7 @@ class UserUI(object):
|
|||
self.user.store()
|
||||
|
||||
ident_methods = get_cfg('identification', {}).get('methods', [])
|
||||
for klass in [x for x in qommon.ident.get_method_classes() if x.key in ident_methods]:
|
||||
for klass in [x for x in ident.get_method_classes() if x.key in ident_methods]:
|
||||
widget = form.get_widget('method_%s' % klass.key)
|
||||
if widget:
|
||||
klass().submit(self.user, widget)
|
||||
|
@ -229,7 +229,7 @@ class UserPage(Directory):
|
|||
|
||||
for method in ident_methods:
|
||||
try:
|
||||
actions = qommon.ident.get_method_user_directory(
|
||||
actions = ident.get_method_user_directory(
|
||||
method, self.user).get_actions()
|
||||
except AttributeError:
|
||||
continue
|
||||
|
@ -283,7 +283,7 @@ class UserPage(Directory):
|
|||
return r.getvalue()
|
||||
else:
|
||||
ident_methods = get_cfg('identification', {}).get('methods', [])
|
||||
for klass in [x for x in qommon.ident.get_method_classes() if x.key in ident_methods]:
|
||||
for klass in [x for x in ident.get_method_classes() if x.key in ident_methods]:
|
||||
if hasattr(klass, str('delete')):
|
||||
klass().delete(self.user)
|
||||
self.user.remove_self()
|
||||
|
@ -293,7 +293,7 @@ class UserPage(Directory):
|
|||
ident_methods = get_cfg('identification', {}).get('methods', [])
|
||||
if component in ident_methods:
|
||||
get_response().breadcrumb.append((component + '/', None))
|
||||
return qommon.ident.get_method_user_directory(component, self.user)
|
||||
return ident.get_method_user_directory(component, self.user)
|
||||
|
||||
class UsersDirectory(Directory):
|
||||
_q_exports = ['', 'new']
|
||||
|
|
|
@ -27,13 +27,13 @@ from quixote import redirect, get_publisher
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon import errors
|
||||
from qommon import misc
|
||||
from qommon.form import *
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.admin.menu import command_icon
|
||||
from qommon import get_logger
|
||||
from ..qommon import _
|
||||
from ..qommon import errors
|
||||
from ..qommon import misc
|
||||
from ..qommon.form import *
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon.admin.menu import command_icon
|
||||
from ..qommon import get_logger
|
||||
|
||||
from wcs.workflows import *
|
||||
from wcs.carddef import CardDef
|
||||
|
|
|
@ -18,10 +18,10 @@ from quixote import redirect
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon import errors
|
||||
from qommon.form import *
|
||||
from qommon.backoffice.menu import html_top
|
||||
from ..qommon import _
|
||||
from ..qommon import errors
|
||||
from ..qommon.form import *
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from wcs.wscalls import NamedWsCall, WsCallRequestWidget
|
||||
|
||||
class NamedWsCallUI(object):
|
||||
|
|
16
wcs/api.py
16
wcs/api.py
|
@ -25,12 +25,12 @@ from quixote.directory import Directory
|
|||
from django.utils.six.moves.urllib import parse as urllib
|
||||
from django.http import HttpResponse, HttpResponseBadRequest
|
||||
|
||||
from qommon import _
|
||||
from qommon import misc
|
||||
from qommon.evalutils import make_datetime
|
||||
from qommon.errors import (AccessForbiddenError, QueryError, TraversalError,
|
||||
from .qommon import _
|
||||
from .qommon import misc
|
||||
from .qommon.evalutils import make_datetime
|
||||
from .qommon.errors import (AccessForbiddenError, QueryError, TraversalError,
|
||||
UnknownNameIdAccessForbiddenError, RequestError)
|
||||
from qommon.form import ComputedExpressionWidget, ConditionWidget
|
||||
from .qommon.form import ComputedExpressionWidget, ConditionWidget
|
||||
|
||||
from wcs.categories import Category
|
||||
from wcs.conditions import Condition, ValidationError
|
||||
|
@ -42,8 +42,8 @@ from wcs.forms.common import FormStatusPage
|
|||
import wcs.qommon.storage as st
|
||||
from wcs.api_utils import sign_url_auto_orig, is_url_signed, get_user_from_api_query_string
|
||||
|
||||
from backoffice.management import FormPage as BackofficeFormPage
|
||||
from backoffice.management import ManagementDirectory
|
||||
from .backoffice.management import FormPage as BackofficeFormPage
|
||||
from .backoffice.management import ManagementDirectory
|
||||
|
||||
def posted_json_data_to_formdata_data(formdef, data):
|
||||
# remap fields from varname to field id
|
||||
|
@ -632,7 +632,7 @@ class ApiUserDirectory(Directory):
|
|||
|
||||
if get_publisher().is_using_postgresql() and not get_request().form.get('full') == 'on':
|
||||
from wcs import sql
|
||||
from qommon.storage import Equal
|
||||
from .qommon.storage import Equal
|
||||
order_by = 'receipt_time'
|
||||
if get_request().form.get('sort') == 'desc':
|
||||
order_by = '-receipt_time'
|
||||
|
|
|
@ -27,7 +27,7 @@ from django.utils.six.moves.urllib import parse as urllib
|
|||
from django.utils.six.moves.urllib import parse as urlparse
|
||||
|
||||
from quixote import get_request, get_publisher
|
||||
from qommon.errors import (AccessForbiddenError, UnknownNameIdAccessForbiddenError)
|
||||
from .qommon.errors import (AccessForbiddenError, UnknownNameIdAccessForbiddenError)
|
||||
import qommon.misc
|
||||
|
||||
DEFAULT_DURATION = 30
|
||||
|
|
|
@ -14,4 +14,4 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from root import RootDirectory
|
||||
from .root import RootDirectory
|
||||
|
|
|
@ -21,8 +21,8 @@ import time
|
|||
from quixote import get_publisher, get_request, get_response, get_session, redirect
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _, misc
|
||||
from qommon.misc import C_
|
||||
from ..qommon import _, misc
|
||||
from ..qommon.misc import C_
|
||||
|
||||
from wcs.carddef import CardDef
|
||||
from wcs.roles import Role
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
from quixote import get_request, get_response, get_session, redirect
|
||||
from quixote.html import TemplateIO, htmltext, htmlescape
|
||||
|
||||
from qommon import _
|
||||
from qommon import errors
|
||||
from qommon.backoffice.menu import html_top
|
||||
from ..qommon import _
|
||||
from ..qommon import errors
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
|
||||
from wcs.carddef import CardDef
|
||||
from .management import ManagementDirectory, FormPage, FormFillPage, FormBackOfficeStatusPage
|
||||
|
|
|
@ -33,21 +33,21 @@ from quixote import get_session, get_publisher, get_request, get_response, redir
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext, htmlescape
|
||||
|
||||
from qommon import _, ngettext, ezt
|
||||
from qommon.admin.emails import EmailsDirectory
|
||||
from qommon.admin.menu import command_icon
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.backoffice.listing import pagination_links
|
||||
from qommon import misc, get_logger
|
||||
from qommon.evalutils import make_datetime
|
||||
from qommon.misc import C_, ellipsize
|
||||
from qommon.afterjobs import AfterJob
|
||||
from qommon import emails
|
||||
import qommon.sms
|
||||
from qommon import errors
|
||||
from qommon import ods
|
||||
from qommon.form import *
|
||||
from qommon.storage import (Equal, NotEqual, LessOrEqual, GreaterOrEqual, Or,
|
||||
from ..qommon import _, ngettext, ezt
|
||||
from ..qommon.admin.emails import EmailsDirectory
|
||||
from ..qommon.admin.menu import command_icon
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon.backoffice.listing import pagination_links
|
||||
from ..qommon import misc, get_logger
|
||||
from ..qommon.evalutils import make_datetime
|
||||
from ..qommon.misc import C_, ellipsize
|
||||
from ..qommon.afterjobs import AfterJob
|
||||
from ..qommon import emails
|
||||
from ..qommon import sms
|
||||
from ..qommon import errors
|
||||
from ..qommon import ods
|
||||
from ..qommon.form import *
|
||||
from ..qommon.storage import (Equal, NotEqual, LessOrEqual, GreaterOrEqual, Or,
|
||||
Intersects, ILike, FtsMatch, Contains, Null)
|
||||
|
||||
from wcs.api_utils import get_user_from_api_query_string
|
||||
|
@ -142,7 +142,7 @@ class SendCodeFormdefDirectory(Directory):
|
|||
if get_publisher().use_sms_feature:
|
||||
sms_cfg = get_cfg('sms', {})
|
||||
mode = sms_cfg.get('mode', 'none')
|
||||
sms_class = qommon.sms.SMS.get_sms_class(mode)
|
||||
sms_class = sms.SMS.get_sms_class(mode)
|
||||
if sms_class:
|
||||
form.add(StringWidget, 'sms', title=_('SMS Number'), required=False)
|
||||
form.add(RadiobuttonsWidget, 'method',
|
||||
|
|
|
@ -19,13 +19,13 @@ from django.utils.translation import pgettext
|
|||
from quixote import get_publisher, get_request, get_response, redirect
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon.backoffice import BackofficeRootDirectory
|
||||
from qommon.backoffice.menu import html_top
|
||||
from ..qommon import _
|
||||
from ..qommon.backoffice import BackofficeRootDirectory
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
|
||||
from qommon import misc, get_cfg
|
||||
from qommon import errors
|
||||
from qommon.form import *
|
||||
from ..qommon import misc, get_cfg
|
||||
from ..qommon import errors
|
||||
from ..qommon.form import *
|
||||
|
||||
from wcs.formdef import FormDef
|
||||
|
||||
|
@ -202,7 +202,7 @@ class RootDirectory(BackofficeRootDirectory):
|
|||
return r.getvalue()
|
||||
|
||||
def get_sidebar(self):
|
||||
from qommon.admin.menu import get_vc_version
|
||||
from ..qommon.admin.menu import get_vc_version
|
||||
r = TemplateIO(html=True)
|
||||
|
||||
r += htmltext('<div class="bo-block">')
|
||||
|
|
|
@ -16,9 +16,9 @@
|
|||
|
||||
from quixote import get_publisher
|
||||
from quixote.directory import Directory
|
||||
from qommon import _
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon import template
|
||||
from ..qommon import _
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon import template
|
||||
|
||||
|
||||
class StudioDirectory(Directory):
|
||||
|
|
|
@ -22,10 +22,10 @@ from quixote import get_publisher, get_request, get_response, get_session, redir
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.form import *
|
||||
from qommon import errors, misc
|
||||
from ..qommon import _
|
||||
from ..qommon.backoffice.menu import html_top
|
||||
from ..qommon.form import *
|
||||
from ..qommon import errors, misc
|
||||
|
||||
from wcs.formdata import FormData
|
||||
from wcs.formdef import FormDef
|
||||
|
|
|
@ -18,7 +18,7 @@ import new
|
|||
import sys
|
||||
|
||||
from quixote import get_publisher
|
||||
from qommon import _
|
||||
from .qommon import _
|
||||
|
||||
from wcs.carddata import CardData
|
||||
from wcs.formdef import FormDef
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
from quixote import get_publisher, get_response
|
||||
from quixote.html import htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon.storage import StorableObject
|
||||
from qommon.misc import simplify
|
||||
from qommon.substitution import Substitutions
|
||||
from qommon.xml_storage import XmlStorableObject
|
||||
from .qommon import _
|
||||
from .qommon.storage import StorableObject
|
||||
from .qommon.misc import simplify
|
||||
from .qommon.substitution import Substitutions
|
||||
from .qommon.xml_storage import XmlStorableObject
|
||||
|
||||
class Category(XmlStorableObject):
|
||||
_names = 'categories'
|
||||
|
|
|
@ -19,8 +19,8 @@ import sys
|
|||
from quixote import get_publisher
|
||||
from django.template import Context, Template, TemplateSyntaxError
|
||||
|
||||
from qommon import _, get_logger
|
||||
from qommon.misc import site_encode
|
||||
from .qommon import _, get_logger
|
||||
from .qommon.misc import site_encode
|
||||
|
||||
|
||||
class ValidationError(ValueError):
|
||||
|
|
|
@ -18,7 +18,7 @@ import tarfile
|
|||
import time
|
||||
import os
|
||||
|
||||
from qommon.ctl import Command, make_option
|
||||
from ..qommon.ctl import Command, make_option
|
||||
|
||||
|
||||
class CmdBackup(Command):
|
||||
|
|
|
@ -25,9 +25,9 @@ import urlparse
|
|||
import hashlib
|
||||
|
||||
from quixote import cleanup
|
||||
from qommon import misc
|
||||
from qommon.ctl import Command, make_option
|
||||
from qommon.storage import atomic_write
|
||||
from ..qommon import misc
|
||||
from ..qommon.ctl import Command, make_option
|
||||
from ..qommon.storage import atomic_write
|
||||
|
||||
from wcs.admin.settings import UserFieldsFormDef
|
||||
from wcs.fields import StringField, EmailField, DateField
|
||||
|
@ -299,7 +299,7 @@ class CmdCheckHobos(Command):
|
|||
|
||||
# initialize service provider side
|
||||
if not pub.cfg['sp'].get('publickey'):
|
||||
from qommon.ident.idp import MethodAdminDirectory
|
||||
from ..qommon.ident.idp import MethodAdminDirectory
|
||||
spconfig = pub.cfg['sp']
|
||||
spconfig['saml2_base_url'] = str(service.get('base_url')) + '/saml'
|
||||
spconfig['saml2_providerid'] = spconfig['saml2_base_url'] + '/metadata'
|
||||
|
@ -329,7 +329,7 @@ class CmdCheckHobos(Command):
|
|||
(bfd, metadata_pathname) = tempfile.mkstemp('.metadata')
|
||||
atomic_write(metadata_pathname, s)
|
||||
|
||||
from qommon.ident.idp import AdminIDPDir
|
||||
from ..qommon.ident.idp import AdminIDPDir
|
||||
admin_dir = AdminIDPDir()
|
||||
key_provider_id = admin_dir.submit_new_remote(
|
||||
metadata_pathname, None, metadata_url, None)
|
||||
|
|
|
@ -21,7 +21,7 @@ import psycopg2.errorcodes
|
|||
from datetime import datetime
|
||||
from shutil import rmtree
|
||||
|
||||
from qommon.ctl import Command, make_option
|
||||
from ..qommon.ctl import Command, make_option
|
||||
|
||||
|
||||
class CmdDeleteTenant(Command):
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
import os
|
||||
|
||||
from qommon.ctl import Command, make_option
|
||||
from ..qommon.ctl import Command, make_option
|
||||
|
||||
class CmdExportSettings(Command):
|
||||
name = 'export_settings'
|
||||
|
|
|
@ -20,8 +20,8 @@ import json
|
|||
|
||||
from quixote import get_publisher
|
||||
from wcs.roles import Role
|
||||
from qommon.ctl import Command
|
||||
from qommon.publisher import get_cfg
|
||||
from ..qommon.ctl import Command
|
||||
from ..qommon.publisher import get_cfg
|
||||
from wcs.admin.settings import UserFieldsFormDef
|
||||
from wcs.qommon.misc import json_encode_helper
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ import os
|
|||
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
||||
from qommon.publisher import get_publisher_class
|
||||
from wcs.qommon.publisher import get_publisher_class
|
||||
|
||||
|
||||
class TenantCommand(BaseCommand):
|
||||
|
|
|
@ -23,7 +23,7 @@ import traceback
|
|||
from django.core.management.base import BaseCommand
|
||||
from django.core.management.base import CommandError
|
||||
|
||||
from qommon.publisher import get_publisher_class
|
||||
from wcs.qommon.publisher import get_publisher_class
|
||||
|
||||
from wcs import sql
|
||||
from wcs.formdef import FormDef
|
||||
|
|
|
@ -21,7 +21,7 @@ import sys
|
|||
|
||||
from django.core.management.base import CommandError
|
||||
|
||||
from qommon.publisher import get_publisher_class
|
||||
from wcs.qommon.publisher import get_publisher_class
|
||||
|
||||
from . import TenantCommand
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ import email.Parser
|
|||
|
||||
from Bouncers import BouncerAPI
|
||||
|
||||
from qommon.ctl import Command
|
||||
from ..qommon.ctl import Command
|
||||
|
||||
COMMA_SPACE = ', '
|
||||
|
||||
|
@ -29,10 +29,10 @@ class CmdProcessBounce(Command):
|
|||
name = 'process_bounce'
|
||||
|
||||
def execute(self, base_options, sub_options, args):
|
||||
from qommon.tokens import Token
|
||||
from qommon.bounces import Bounce
|
||||
from ..qommon.tokens import Token
|
||||
from ..qommon.bounces import Bounce
|
||||
|
||||
import publisher
|
||||
from .. import publisher
|
||||
|
||||
try:
|
||||
publisher.WcsPublisher.configure(self.config)
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
import os
|
||||
|
||||
from qommon.ctl import Command, make_option
|
||||
from ..qommon.ctl import Command, make_option
|
||||
|
||||
def rebuild_vhost_indexes(pub, destroy=False):
|
||||
from wcs.formdef import FormDef
|
||||
|
|
|
@ -18,7 +18,7 @@ import sys
|
|||
import tarfile
|
||||
import os
|
||||
|
||||
from qommon.ctl import Command, make_option
|
||||
from ..qommon.ctl import Command, make_option
|
||||
|
||||
|
||||
class CmdRestore(Command):
|
||||
|
|
|
@ -19,7 +19,7 @@ import runpy
|
|||
import warnings
|
||||
import sys
|
||||
|
||||
from qommon.ctl import Command, make_option
|
||||
from ..qommon.ctl import Command, make_option
|
||||
|
||||
class CmdRunScript(Command):
|
||||
'''Run a script within a given host publisher context'''
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
import os.path
|
||||
|
||||
from qommon.ctl import Command, make_option
|
||||
from ..qommon.ctl import Command, make_option
|
||||
|
||||
class CmdShell(Command):
|
||||
'''Launch a shell and initialize a publisher on a given host'''
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
from qommon.ctl import Command, make_option
|
||||
from ..qommon.ctl import Command, make_option
|
||||
|
||||
class CmdWipeData(Command):
|
||||
name = 'wipe-data'
|
||||
|
|
|
@ -24,18 +24,18 @@ from django.utils.six.moves.urllib import parse as urlparse
|
|||
from quixote import get_publisher, get_request, get_session
|
||||
from quixote.html import TemplateIO
|
||||
|
||||
from qommon import _
|
||||
from qommon.form import *
|
||||
from qommon.humantime import seconds2humanduration
|
||||
from qommon.misc import get_variadic_url
|
||||
import qommon.misc
|
||||
from qommon import get_logger
|
||||
from .qommon import _
|
||||
from .qommon.form import *
|
||||
from .qommon.humantime import seconds2humanduration
|
||||
from .qommon.misc import get_variadic_url
|
||||
from .qommon import misc
|
||||
from .qommon import get_logger
|
||||
|
||||
from qommon.storage import StorableObject
|
||||
from qommon.template import Template
|
||||
from qommon.xml_storage import XmlStorableObject
|
||||
from .qommon.storage import StorableObject
|
||||
from .qommon.template import Template
|
||||
from .qommon.xml_storage import XmlStorableObject
|
||||
|
||||
from wcs.api_utils import sign_url_auto_orig
|
||||
from .api_utils import sign_url_auto_orig
|
||||
|
||||
|
||||
data_source_functions = {}
|
||||
|
@ -63,7 +63,7 @@ class DataSourceSelectionWidget(CompositeWidget):
|
|||
('carddef:%s' % x.url_name, x.name, 'carddef:%s' % x.url_name)
|
||||
for x in CardDef.select(lightweight=True, ignore_errors=True)
|
||||
if x.digest_template])
|
||||
options.sort(key=lambda x: qommon.misc.simplify(x[1]))
|
||||
options.sort(key=lambda x: misc.simplify(x[1]))
|
||||
|
||||
options.insert(0, (None, _('None'), None))
|
||||
options.append(('json', _('JSON URL'), 'json'))
|
||||
|
@ -124,7 +124,7 @@ def get_structured_items(data_source, mode=None):
|
|||
items = [x.get_data_source_structured_item()
|
||||
for x in carddef.data_class().select()
|
||||
if not x.is_draft()]
|
||||
items.sort(key=lambda x: qommon.misc.simplify(x['text']))
|
||||
items.sort(key=lambda x: misc.simplify(x['text']))
|
||||
return items
|
||||
|
||||
if data_source.get('type') not in ('json', 'jsonp', 'formula'):
|
||||
|
@ -154,7 +154,7 @@ def get_structured_items(data_source, mode=None):
|
|||
return []
|
||||
if len(value) == 0:
|
||||
return []
|
||||
value = qommon.misc.json_encode_helper(value, get_publisher().site_charset)
|
||||
value = misc.json_encode_helper(value, get_publisher().site_charset)
|
||||
if isinstance(value[0], list) or isinstance(value[0], tuple):
|
||||
if len(value[0]) >= 3:
|
||||
return [{'id': x[0], 'text': x[1], 'key': x[2]} for x in value]
|
||||
|
@ -196,7 +196,7 @@ def get_structured_items(data_source, mode=None):
|
|||
unsigned_url = url
|
||||
url = sign_url_auto_orig(url)
|
||||
try:
|
||||
entries = qommon.misc.json_loads(qommon.misc.urlopen(url).read())
|
||||
entries = misc.json_loads(misc.urlopen(url).read())
|
||||
if type(entries) is not dict:
|
||||
raise ValueError('not a json dict')
|
||||
if type(entries.get('data')) is not list:
|
||||
|
@ -216,7 +216,7 @@ def get_structured_items(data_source, mode=None):
|
|||
cache.set(cache_key, items, cache_duration)
|
||||
|
||||
return items
|
||||
except qommon.misc.ConnectionError as e:
|
||||
except misc.ConnectionError as e:
|
||||
get_logger().warn('Error loading JSON data source (%s)' % str(e))
|
||||
except ValueError as e:
|
||||
get_logger().warn('Error reading JSON data source output (%s)' % str(e))
|
||||
|
@ -300,7 +300,7 @@ class NamedDataSource(XmlStorableObject):
|
|||
super(NamedDataSource, self).store()
|
||||
|
||||
def get_new_slug(self):
|
||||
new_slug = qommon.misc.simplify(self.name, space='_')
|
||||
new_slug = misc.simplify(self.name, space='_')
|
||||
base_new_slug = new_slug
|
||||
suffix_no = 0
|
||||
while True:
|
||||
|
@ -369,7 +369,7 @@ class NamedDataSource(XmlStorableObject):
|
|||
|
||||
unsigned_url = url
|
||||
url = sign_url_auto_orig(url)
|
||||
resp = qommon.misc.urlopen(url).read()
|
||||
resp = misc.urlopen(url).read()
|
||||
if hasattr(request, 'datasources_cache'):
|
||||
request.datasources_cache[unsigned_url] = resp
|
||||
return resp
|
||||
|
@ -384,7 +384,7 @@ class NamedDataSource(XmlStorableObject):
|
|||
value = None
|
||||
if self.type == 'json' and self.id_parameter:
|
||||
resp = self.load_json(self.id_parameter, option_id)
|
||||
response = qommon.misc.json_loads(resp)
|
||||
response = misc.json_loads(resp)
|
||||
if response['data']:
|
||||
value = response['data'][0]
|
||||
else:
|
||||
|
|
|
@ -33,16 +33,16 @@ from django.utils.formats import date_format as django_date_format
|
|||
from django.utils.html import urlize
|
||||
from django.utils.six.moves.html_parser import HTMLParser
|
||||
|
||||
from qommon import _
|
||||
from qommon import evalutils
|
||||
from qommon.form import *
|
||||
from qommon.misc import localstrftime, strftime, date_format, ellipsize, can_thumbnail
|
||||
from qommon.template import Template, TemplateError
|
||||
from qommon import get_cfg, get_logger
|
||||
from .qommon import _
|
||||
from .qommon import evalutils
|
||||
from .qommon.form import *
|
||||
from .qommon.misc import localstrftime, strftime, date_format, ellipsize, can_thumbnail
|
||||
from .qommon.template import Template, TemplateError
|
||||
from .qommon import get_cfg, get_logger
|
||||
|
||||
import data_sources
|
||||
import portfolio
|
||||
from conditions import Condition
|
||||
from . import data_sources
|
||||
from . import portfolio
|
||||
from .conditions import Condition
|
||||
|
||||
|
||||
class PrefillSelectionWidget(CompositeWidget):
|
||||
|
|
|
@ -25,16 +25,16 @@ import time
|
|||
from quixote import get_request, get_publisher, get_session
|
||||
from quixote.http_request import Upload
|
||||
|
||||
from qommon import _
|
||||
from qommon.storage import StorableObject, Intersects, Contains
|
||||
import qommon.misc
|
||||
from qommon.evalutils import make_datetime
|
||||
from qommon.publisher import get_cfg
|
||||
from qommon.substitution import Substitutions, invalidate_substitution_cache
|
||||
from qommon.template import Template
|
||||
from .qommon import _
|
||||
from .qommon.storage import StorableObject, Intersects, Contains
|
||||
from .qommon import misc
|
||||
from .qommon.evalutils import make_datetime
|
||||
from .qommon.publisher import get_cfg
|
||||
from .qommon.substitution import Substitutions, invalidate_substitution_cache
|
||||
from .qommon.template import Template
|
||||
|
||||
from roles import Role
|
||||
from fields import FileField
|
||||
from .roles import Role
|
||||
from .fields import FileField
|
||||
|
||||
|
||||
def get_dict_with_varnames(fields, data, formdata=None, varnames_only=False):
|
||||
|
@ -58,7 +58,7 @@ def get_dict_with_varnames(fields, data, formdata=None, varnames_only=False):
|
|||
new_data['f%s' % field.id.replace('-', '_')] = value
|
||||
|
||||
# also add it as 'field_' + normalized(field label)
|
||||
identifier_name = qommon.misc.simplify(field.label, space = '_')
|
||||
identifier_name = misc.simplify(field.label, space = '_')
|
||||
new_data['field_' + identifier_name] = value
|
||||
|
||||
# and finally add it as its manually defined variable name
|
||||
|
@ -638,9 +638,9 @@ class FormData(StorableObject):
|
|||
if field.type == 'display_name':
|
||||
return self.get_display_name()
|
||||
if field.type == 'time':
|
||||
return qommon.misc.localstrftime(self.receipt_time)
|
||||
return misc.localstrftime(self.receipt_time)
|
||||
if field.type == 'last_update_time':
|
||||
return qommon.misc.localstrftime(self.last_update_time)
|
||||
return misc.localstrftime(self.last_update_time)
|
||||
if field.type == 'user-label':
|
||||
return self.get_user_label() or '-'
|
||||
if field.type == 'status':
|
||||
|
@ -685,8 +685,8 @@ class FormData(StorableObject):
|
|||
|
||||
if self.id:
|
||||
d.update({
|
||||
'form_receipt_date': qommon.misc.strftime(qommon.misc.date_format(), self.receipt_time),
|
||||
'form_receipt_time': qommon.misc.strftime('%H:%M', self.receipt_time),
|
||||
'form_receipt_date': misc.strftime(misc.date_format(), self.receipt_time),
|
||||
'form_receipt_time': misc.strftime('%H:%M', self.receipt_time),
|
||||
'form_number': str(self.get_display_id()),
|
||||
'form_number_raw': '%s' % self.id,
|
||||
'form_url': self.get_url(),
|
||||
|
@ -823,7 +823,7 @@ class FormData(StorableObject):
|
|||
return d
|
||||
|
||||
def get_substitution_variables(self, minimal=False):
|
||||
from qommon.substitution import CompatibilityNamesDict
|
||||
from .qommon.substitution import CompatibilityNamesDict
|
||||
from wcs.variables import LazyFormData
|
||||
from wcs.workflows import AttachmentsSubstitutionProxy
|
||||
variables = CompatibilityNamesDict({
|
||||
|
@ -1080,7 +1080,7 @@ class FormData(StorableObject):
|
|||
def export_to_json(self, include_files=True, anonymise=False):
|
||||
data = self.get_json_export_dict(include_files=include_files, anonymise=anonymise)
|
||||
return json.dumps(data,
|
||||
cls=qommon.misc.JSONEncoder,
|
||||
cls=misc.JSONEncoder,
|
||||
encoding=get_publisher().site_charset)
|
||||
|
||||
def mark_as_being_visited(self):
|
||||
|
|
|
@ -27,20 +27,20 @@ import datetime
|
|||
from quixote import get_request, get_publisher
|
||||
from quixote.http_request import Upload
|
||||
|
||||
from qommon import _
|
||||
from qommon.storage import StorableObject, fix_key
|
||||
from qommon.cron import CronJob
|
||||
from qommon.form import *
|
||||
from qommon.misc import simplify, get_as_datetime
|
||||
from qommon import get_cfg
|
||||
from qommon.substitution import Substitutions
|
||||
from qommon.publisher import get_publisher_class
|
||||
from .qommon import _
|
||||
from .qommon.storage import StorableObject, fix_key
|
||||
from .qommon.cron import CronJob
|
||||
from .qommon.form import *
|
||||
from .qommon.misc import simplify, get_as_datetime
|
||||
from .qommon import get_cfg
|
||||
from .qommon.substitution import Substitutions
|
||||
from .qommon.publisher import get_publisher_class
|
||||
|
||||
from formdata import FormData
|
||||
from roles import Role, logged_users_role
|
||||
from categories import Category
|
||||
import fields
|
||||
import data_sources
|
||||
from .formdata import FormData
|
||||
from .roles import Role, logged_users_role
|
||||
from .categories import Category
|
||||
from . import fields
|
||||
from . import data_sources
|
||||
|
||||
|
||||
class FormdefImportError(Exception):
|
||||
|
@ -1252,7 +1252,7 @@ class FormDef(StorableObject):
|
|||
return d
|
||||
|
||||
def get_substitution_variables(self, minimal=False):
|
||||
from qommon.substitution import CompatibilityNamesDict
|
||||
from .qommon.substitution import CompatibilityNamesDict
|
||||
from wcs.variables import LazyFormDef
|
||||
return CompatibilityNamesDict({'form': LazyFormDef(self)})
|
||||
|
||||
|
@ -1462,7 +1462,7 @@ class FormDef(StorableObject):
|
|||
return pickle.dumps(object, protocol=2) + pickle.dumps(object.fields, protocol=2)
|
||||
|
||||
|
||||
from qommon.admin.emails import EmailsDirectory
|
||||
from .qommon.admin.emails import EmailsDirectory
|
||||
|
||||
EmailsDirectory.register('new_user', N_('Notification of creation to user'),
|
||||
enabled=False,
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
from quixote import redirect
|
||||
from quixote.directory import Directory
|
||||
|
||||
from qommon import errors
|
||||
from qommon import misc
|
||||
from qommon import template
|
||||
from qommon import tokens
|
||||
from qommon.form import Form
|
||||
from ..qommon import errors
|
||||
from ..qommon import misc
|
||||
from ..qommon import template
|
||||
from ..qommon import tokens
|
||||
from ..qommon.form import Form
|
||||
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.forms.common import FormTemplateMixin
|
||||
|
|
|
@ -19,10 +19,10 @@ import urllib
|
|||
from quixote import get_request, get_publisher, redirect
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
|
||||
from qommon import _
|
||||
from qommon import misc
|
||||
from qommon.form import *
|
||||
from qommon.backoffice.listing import pagination_links
|
||||
from ..qommon import _
|
||||
from ..qommon import misc
|
||||
from ..qommon.form import *
|
||||
from ..qommon.backoffice.listing import pagination_links
|
||||
from wcs.roles import logged_users_role
|
||||
|
||||
class FormDefUI(object):
|
||||
|
|
|
@ -26,15 +26,15 @@ from wcs.api_utils import get_user_from_api_query_string, is_url_signed
|
|||
from wcs.fields import WidgetField, FileField
|
||||
from wcs.workflows import EditableWorkflowStatusItem
|
||||
|
||||
from qommon import _
|
||||
from qommon import misc
|
||||
from qommon import template
|
||||
from qommon import get_logger
|
||||
from qommon.form import *
|
||||
from ..qommon import _
|
||||
from ..qommon import misc
|
||||
from ..qommon import template
|
||||
from ..qommon import get_logger
|
||||
from ..qommon.form import *
|
||||
|
||||
from wcs.qommon.admin.texts import TextsDirectory
|
||||
|
||||
from qommon import errors
|
||||
from ..qommon import errors
|
||||
|
||||
|
||||
class FileDirectory(Directory):
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
from quixote import get_publisher
|
||||
from quixote.directory import Directory, AccessControlled
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
from qommon import errors, _
|
||||
from ..qommon import errors, _
|
||||
|
||||
from .root import FormPage
|
||||
|
||||
|
|
|
@ -38,14 +38,14 @@ from quixote.util import randbytes
|
|||
from quixote.form.widget import *
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon.admin.emails import EmailsDirectory
|
||||
from qommon import errors, get_cfg
|
||||
from qommon import misc, get_logger
|
||||
from qommon import template
|
||||
from qommon.form import *
|
||||
from qommon.logger import BotFilter
|
||||
from qommon import emails
|
||||
from ..qommon import _
|
||||
from ..qommon.admin.emails import EmailsDirectory
|
||||
from ..qommon import errors, get_cfg
|
||||
from ..qommon import misc, get_logger
|
||||
from ..qommon import template
|
||||
from ..qommon.form import *
|
||||
from ..qommon.logger import BotFilter
|
||||
from ..qommon import emails
|
||||
|
||||
from wcs import data_sources
|
||||
from wcs.categories import Category
|
||||
|
|
|
@ -19,7 +19,7 @@ import json
|
|||
from quixote import get_request, get_response
|
||||
from quixote.directory import Directory
|
||||
|
||||
from qommon import errors
|
||||
from ..qommon import errors
|
||||
|
||||
from wcs.api import get_user_from_api_query_string, is_url_signed
|
||||
from wcs.roles import logged_users_role
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
|
||||
import datetime
|
||||
|
||||
from qommon.misc import simplify
|
||||
from qommon.xml_storage import XmlStorableObject
|
||||
from .qommon.misc import simplify
|
||||
from .qommon.xml_storage import XmlStorableObject
|
||||
from wcs.formdef import FormDef
|
||||
from wcs.workflows import Workflow
|
||||
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from quixote import get_request, redirect
|
||||
import qommon.myspace
|
||||
from .qommon import myspace
|
||||
|
||||
class MyspaceDirectory(qommon.myspace.MyspaceDirectory):
|
||||
class MyspaceDirectory(myspace.MyspaceDirectory):
|
||||
_q_exports = ['', 'profile', 'new', 'password', 'remove', 'drafts', 'forms']
|
||||
|
||||
def drafts(self):
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
import json
|
||||
import hashlib
|
||||
import urllib
|
||||
import urlparse
|
||||
import base64
|
||||
|
||||
from qommon import get_logger
|
||||
from qommon.misc import http_get_page, json_loads, http_post_request, urlopen
|
||||
import qommon.form
|
||||
from django.utils.six.moves.urllib import parse as urlparse
|
||||
|
||||
from .qommon import get_logger
|
||||
from .qommon.misc import http_get_page, json_loads, http_post_request, urlopen
|
||||
from quixote import get_publisher, get_request, get_response, redirect, get_session
|
||||
from quixote.directory import Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
@ -131,7 +131,8 @@ class FargoDirectory(Directory):
|
|||
scheme, netloc, path, qs, frag = urlparse.urlsplit(url)
|
||||
path = map(None, path.split('/'))
|
||||
name = urllib.unquote(path[-1])
|
||||
download = qommon.form.PicklableUpload(name, content_type='application/pdf')
|
||||
from .qommon.form import PicklableUpload
|
||||
download = PicklableUpload(name, content_type='application/pdf')
|
||||
download.__setstate__({
|
||||
'data': document,
|
||||
})
|
||||
|
|
|
@ -29,7 +29,7 @@ try:
|
|||
except ImportError:
|
||||
pass
|
||||
|
||||
from qommon.publisher import set_publisher_class, QommonPublisher
|
||||
from .qommon.publisher import set_publisher_class, QommonPublisher
|
||||
|
||||
# this is terribly ugly but import RootDirectory will import a bunch of things,
|
||||
# and some of them need a publisher to be set
|
||||
|
@ -38,22 +38,22 @@ class StubWcsPublisher(QommonPublisher):
|
|||
set_publisher_class(StubWcsPublisher)
|
||||
|
||||
|
||||
from root import RootDirectory
|
||||
from backoffice import RootDirectory as BackofficeRootDirectory
|
||||
from admin import RootDirectory as AdminRootDirectory
|
||||
import sessions
|
||||
from qommon.cron import CronJob
|
||||
from .root import RootDirectory
|
||||
from .backoffice import RootDirectory as BackofficeRootDirectory
|
||||
from .admin import RootDirectory as AdminRootDirectory
|
||||
from . import sessions
|
||||
from .qommon.cron import CronJob
|
||||
|
||||
from users import User
|
||||
from tracking_code import TrackingCode
|
||||
from logged_errors import LoggedError
|
||||
from .users import User
|
||||
from .tracking_code import TrackingCode
|
||||
from .logged_errors import LoggedError
|
||||
|
||||
import pickle
|
||||
|
||||
class UnpicklerClass(pickle.Unpickler):
|
||||
def find_class(self, module, name):
|
||||
if module == 'wcs.form':
|
||||
module = 'qommon.form'
|
||||
if module == 'qommon.form':
|
||||
module = 'wcs.qommon.form'
|
||||
__import__(module)
|
||||
mod = sys.modules[module]
|
||||
klass = getattr(mod, name)
|
||||
|
|
|
@ -40,8 +40,8 @@ def ngettext(*args):
|
|||
return message
|
||||
return unicode(pub.ngettext(*args), 'utf-8').encode(pub.site_charset)
|
||||
|
||||
from publisher import get_cfg, get_logger, get_publisher_class
|
||||
import publisher
|
||||
from .publisher import get_cfg, get_logger, get_publisher_class
|
||||
from . import publisher
|
||||
publisher._ = _
|
||||
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
from quixote import get_publisher
|
||||
|
||||
from qommon import get_cfg
|
||||
from .. import get_cfg
|
||||
|
||||
def cfg_submit(form, cfg_key, fields):
|
||||
get_publisher().reload_cfg()
|
||||
|
|
|
@ -18,11 +18,11 @@ from quixote import redirect
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
|
||||
from qommon import _
|
||||
from qommon.form import *
|
||||
from qommon import misc, get_cfg
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.admin.cfg import cfg_submit
|
||||
from .. import _
|
||||
from ..form import *
|
||||
from .. import misc, get_cfg
|
||||
from ..backoffice.menu import html_top
|
||||
from ..admin.cfg import cfg_submit
|
||||
|
||||
class EmailsDirectory(Directory):
|
||||
emails_dict = {}
|
||||
|
|
|
@ -21,10 +21,10 @@ from quixote import get_publisher, get_request, get_response
|
|||
from quixote.html import htmltext, TemplateIO
|
||||
from quixote.directory import Directory
|
||||
|
||||
from qommon import _
|
||||
from qommon import logger, errors
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.admin.menu import error_page
|
||||
from .. import _
|
||||
from .. import logger, errors
|
||||
from ..backoffice.menu import html_top
|
||||
from ..admin.menu import error_page
|
||||
|
||||
class ByUserDirectory(Directory):
|
||||
def _q_lookup(self, component):
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
from quixote import get_publisher, get_request
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon.backoffice.menu import html_top
|
||||
from .. import _
|
||||
from ..backoffice.menu import html_top
|
||||
import re
|
||||
|
||||
def _find_vc_version():
|
||||
|
|
|
@ -18,10 +18,10 @@ from quixote import redirect
|
|||
from quixote.directory import Directory, AccessControlled
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon.form import *
|
||||
from qommon.admin.cfg import cfg_submit
|
||||
from qommon.backoffice.menu import html_top
|
||||
from .. import _
|
||||
from ..form import *
|
||||
from ..admin.cfg import cfg_submit
|
||||
from ..backoffice.menu import html_top
|
||||
|
||||
class SettingsDirectory(AccessControlled, Directory):
|
||||
def _q_access(self):
|
||||
|
|
|
@ -20,11 +20,11 @@ from quixote import redirect, get_publisher
|
|||
from quixote.html import TemplateIO, htmltext
|
||||
from quixote.directory import Directory
|
||||
|
||||
from qommon import _
|
||||
from qommon.form import *
|
||||
from qommon import misc, get_cfg, ezt
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.template import Template
|
||||
from wcs.qommon import _
|
||||
from wcs.qommon.form import *
|
||||
from wcs.qommon import misc, get_cfg, ezt
|
||||
from wcs.qommon.backoffice.menu import html_top
|
||||
from wcs.qommon.template import Template
|
||||
|
||||
|
||||
class TextsDirectory(Directory):
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
from quixote.directory import Directory
|
||||
from quixote import get_response
|
||||
|
||||
import errors
|
||||
from http_response import AfterJob
|
||||
from qommon import _
|
||||
from . import errors
|
||||
from .http_response import AfterJob
|
||||
from . import _
|
||||
|
||||
class AfterJobStatusDirectory(Directory):
|
||||
def _q_lookup(self, component):
|
||||
|
|
|
@ -14,4 +14,4 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from root import BackofficeRootDirectory
|
||||
from .root import BackofficeRootDirectory
|
||||
|
|
|
@ -19,7 +19,7 @@ import urllib
|
|||
from quixote.html import htmltext, TemplateIO
|
||||
from quixote import get_request, get_response
|
||||
|
||||
from qommon import _
|
||||
from .. import _
|
||||
|
||||
def pagination_links(offset, limit, total_count):
|
||||
get_response().add_javascript(['jquery.js', 'wcs.listing.js'])
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
from quixote import get_response, get_request, get_publisher, get_session
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
|
||||
from qommon import get_cfg
|
||||
from qommon import _
|
||||
from .. import get_cfg
|
||||
from .. import _
|
||||
|
||||
def generate_header_menu(selected = None):
|
||||
return get_publisher().get_backoffice_root().generate_header_menu(selected=selected)
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
from quixote.directory import Directory, AccessControlled
|
||||
from quixote import get_publisher, get_request, get_response
|
||||
|
||||
from qommon import _
|
||||
from qommon import errors
|
||||
from .. import _
|
||||
from .. import errors
|
||||
|
||||
class BackofficeRootDirectory(AccessControlled, Directory):
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from qommon.storage import StorableObject
|
||||
from .storage import StorableObject
|
||||
|
||||
class Bounce(StorableObject):
|
||||
_names = 'bounces'
|
||||
|
|
|
@ -24,8 +24,8 @@ __all__ = [
|
|||
'Command',
|
||||
]
|
||||
|
||||
import qommon
|
||||
from qommon import _
|
||||
from wcs import qommon
|
||||
from . import _
|
||||
qommon._commands = {}
|
||||
|
||||
class Command(object):
|
||||
|
|
|
@ -27,7 +27,6 @@ from email.mime.multipart import MIMEMultipart
|
|||
from email.mime.nonmultipart import MIMENonMultipart
|
||||
from email.mime.text import MIMEText
|
||||
from email.utils import formataddr
|
||||
import email.Charset as Charset
|
||||
import smtplib
|
||||
import socket
|
||||
|
||||
|
@ -47,13 +46,17 @@ from django.utils.safestring import mark_safe
|
|||
|
||||
from quixote import get_request, get_response, get_publisher
|
||||
|
||||
from publisher import get_cfg, get_logger
|
||||
import errors
|
||||
import tokens
|
||||
from admin.emails import EmailsDirectory
|
||||
from template import Template
|
||||
from .publisher import get_cfg, get_logger
|
||||
from . import errors
|
||||
from . import tokens
|
||||
from .admin.emails import EmailsDirectory
|
||||
from .template import Template
|
||||
|
||||
Charset.add_charset('utf-8', Charset.QP, Charset.QP, 'utf-8')
|
||||
try:
|
||||
import email.Charset as Charset
|
||||
Charset.add_charset('utf-8', Charset.QP, Charset.QP, 'utf-8')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
if docutils:
|
||||
|
|
|
@ -21,7 +21,7 @@ import quixote
|
|||
from quixote.errors import *
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
import template
|
||||
from . import template
|
||||
|
||||
|
||||
class AccessForbiddenError(AccessError):
|
||||
|
@ -30,7 +30,7 @@ class AccessForbiddenError(AccessError):
|
|||
self.location_hint = location_hint
|
||||
|
||||
def render(self):
|
||||
from qommon import _
|
||||
from . import _
|
||||
if self.public_msg:
|
||||
return template.error_page(self.public_msg, _('Access Forbidden'),
|
||||
continue_to = (get_publisher().get_root_url(), _('the homepage')),
|
||||
|
@ -63,7 +63,7 @@ class EmailError(Exception):
|
|||
|
||||
class InternalServerError(object):
|
||||
def render(self):
|
||||
from qommon import _
|
||||
from . import _
|
||||
template.html_top(_('Oops, the server borked severely'))
|
||||
r = TemplateIO(html=True)
|
||||
|
||||
|
@ -116,7 +116,7 @@ TraversalError.description = N_(
|
|||
|
||||
|
||||
def format_publish_error(exc):
|
||||
from qommon import _
|
||||
from . import _
|
||||
if getattr(exc, 'public_msg', None):
|
||||
return template.error_page(exc.format(), _(exc.title))
|
||||
else:
|
||||
|
|
|
@ -35,7 +35,7 @@ try:
|
|||
except ImportError:
|
||||
Image = None
|
||||
|
||||
from storage import atomic_write
|
||||
from .storage import atomic_write
|
||||
|
||||
try:
|
||||
from feedparser import _sanitizeHTML
|
||||
|
@ -69,14 +69,14 @@ from django.conf import settings
|
|||
from django.utils.safestring import mark_safe
|
||||
|
||||
from .template import render as render_template, Template, TemplateError
|
||||
from wcs.portfolio import has_portfolio
|
||||
from ..portfolio import has_portfolio
|
||||
from wcs.conditions import Condition, ValidationError
|
||||
|
||||
from qommon import _, ngettext
|
||||
import misc
|
||||
from . import _, ngettext
|
||||
from . import misc
|
||||
from .humantime import humanduration2seconds, seconds2humanduration, timewords
|
||||
from .misc import strftime, C_, HAS_PDFTOPPM
|
||||
from publisher import get_cfg
|
||||
from .publisher import get_cfg
|
||||
from .template_utils import render_block_to_string
|
||||
|
||||
QuixoteForm = Form
|
||||
|
@ -1477,6 +1477,8 @@ class WysiwygTextWidget(TextWidget):
|
|||
if self.value:
|
||||
if _sanitizeHTML:
|
||||
self.value = _sanitizeHTML(self.value, get_request().charset, 'text/html')
|
||||
elif isinstance(self.value, unicode):
|
||||
self.value = self.value.encode(get_publisher().site_charset)
|
||||
if self.value.startswith('<br />'):
|
||||
self.value = self.value[6:]
|
||||
if self.value.endswith('<br />'):
|
||||
|
|
|
@ -23,7 +23,7 @@ from quixote import get_session, get_publisher
|
|||
import quixote.http_request
|
||||
from quixote.errors import RequestError
|
||||
|
||||
from http_response import HTTPResponse
|
||||
from .http_response import HTTPResponse
|
||||
|
||||
class HTTPRequest(quixote.http_request.HTTPRequest):
|
||||
signed = False
|
||||
|
@ -51,7 +51,7 @@ class HTTPRequest(quixote.http_request.HTTPRequest):
|
|||
if auth_header.startswith('Basic '):
|
||||
auth_header = auth_header.split(' ', 1)[1]
|
||||
username, password = base64.decodestring(auth_header).split(':', 1)
|
||||
from qommon.ident.password_accounts import PasswordAccount
|
||||
from .ident.password_accounts import PasswordAccount
|
||||
try:
|
||||
self._user = PasswordAccount.get_with_credentials(username, password)
|
||||
except KeyError:
|
||||
|
|
|
@ -24,7 +24,7 @@ from quixote.util import randbytes
|
|||
import quixote.http_response
|
||||
from quixote import get_publisher, get_request
|
||||
|
||||
from qommon.storage import StorableObject
|
||||
from .storage import StorableObject
|
||||
|
||||
class AfterJob(StorableObject):
|
||||
_names = 'afterjobs'
|
||||
|
@ -99,7 +99,7 @@ class HTTPResponse(quixote.http_response.HTTPResponse):
|
|||
def get_javascript_for_header(self):
|
||||
s = ''
|
||||
if self.javascript_scripts:
|
||||
from qommon.admin.menu import get_vc_version
|
||||
from .admin.menu import get_vc_version
|
||||
version_hash = hashlib.md5(str(get_vc_version())).hexdigest()
|
||||
root_url = get_publisher().get_root_url() + get_publisher().qommon_static_dir
|
||||
s += '\n'.join(['<script type="text/javascript" src="%sjs/%s?%s"></script>' % (
|
||||
|
@ -120,7 +120,7 @@ class HTTPResponse(quixote.http_response.HTTPResponse):
|
|||
def get_css_includes_for_header(self):
|
||||
if not self.css_includes:
|
||||
return ''
|
||||
from qommon.admin.menu import get_vc_version
|
||||
from .admin.menu import get_vc_version
|
||||
version_hash = hashlib.md5(str(get_vc_version())).hexdigest()
|
||||
root_url = get_publisher().get_root_url() + get_publisher().qommon_static_dir
|
||||
return '\n'.join(['<link rel="stylesheet" type="text/css" href="%scss/%s?%s" />' % (
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
import re
|
||||
|
||||
from qommon import _
|
||||
from . import _
|
||||
|
||||
_minute = 60
|
||||
_hour = 60 * 60
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
from quixote import get_publisher
|
||||
|
||||
import base
|
||||
from . import base
|
||||
|
||||
def login(method):
|
||||
m = get_publisher().ident_methods.get(method)
|
||||
|
|
|
@ -24,12 +24,12 @@ from quixote import redirect, get_session, get_publisher, get_request, get_sessi
|
|||
from quixote.directory import Directory
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
|
||||
from qommon import _
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon import template, get_cfg, get_logger
|
||||
from qommon.form import (Form, StringWidget, CompositeWidget, ComputedExpressionWidget,
|
||||
from .. import _
|
||||
from ..backoffice.menu import html_top
|
||||
from .. import template, get_cfg, get_logger
|
||||
from ..form import (Form, StringWidget, CompositeWidget, ComputedExpressionWidget,
|
||||
SingleSelectWidget, WidgetListAsTable)
|
||||
from qommon.misc import http_post_request, http_get_page, json_loads
|
||||
from ..misc import http_post_request, http_get_page, json_loads
|
||||
|
||||
from wcs.workflows import WorkflowStatusItem
|
||||
from wcs.formdata import flatten_dict
|
||||
|
|
|
@ -26,22 +26,22 @@ from quixote.directory import Directory
|
|||
from quixote import redirect, get_session, get_response, get_publisher
|
||||
from quixote.html import htmltext, TemplateIO
|
||||
|
||||
from qommon import _
|
||||
from qommon import misc, get_cfg, get_logger
|
||||
from qommon.form import *
|
||||
from qommon.tokens import Token
|
||||
from .. import _
|
||||
from .. import misc, get_cfg, get_logger
|
||||
from ..form import *
|
||||
from ..tokens import Token
|
||||
|
||||
from qommon import template
|
||||
from qommon import errors
|
||||
from .. import template
|
||||
from .. import errors
|
||||
|
||||
from qommon.backoffice.menu import html_top
|
||||
from qommon.admin.menu import command_icon
|
||||
from ..backoffice.menu import html_top
|
||||
from ..admin.menu import command_icon
|
||||
|
||||
from base import AuthMethod
|
||||
from qommon.storage import atomic_write
|
||||
from .base import AuthMethod
|
||||
from ..storage import atomic_write
|
||||
|
||||
import qommon.x509utils as x509utils
|
||||
import qommon.saml2utils as saml2utils
|
||||
from .. import x509utils
|
||||
from .. import saml2utils
|
||||
|
||||
ADMIN_TITLE = N_('SAML2')
|
||||
|
||||
|
@ -1024,7 +1024,7 @@ class MethodAdminDirectory(Directory):
|
|||
return r.getvalue()
|
||||
|
||||
def identities_submit(self, form):
|
||||
from qommon.admin.settings import cfg_submit
|
||||
from wcs.qommon.admin.settings import cfg_submit
|
||||
cfg_submit(form, 'saml_identities',
|
||||
('grab-user-with-wsf', 'identity-creation', 'notify-on-register',
|
||||
'email-confirmation', 'registration-url'))
|
||||
|
|
|
@ -18,34 +18,34 @@ import random
|
|||
import time
|
||||
import csv
|
||||
|
||||
from base import AuthMethod, NoSuchMethodForUserError
|
||||
from .base import AuthMethod, NoSuchMethodForUserError
|
||||
|
||||
from quixote import redirect, get_publisher
|
||||
from quixote.directory import AccessControlled, Directory
|
||||
from quixote.html import TemplateIO, htmltext
|
||||
|
||||
from qommon import _, ngettext
|
||||
from qommon.form import *
|
||||
from .. import _, ngettext
|
||||
from ..form import *
|
||||
|
||||
from qommon.publisher import get_publisher_class
|
||||
from qommon import misc, get_cfg, get_logger
|
||||
from qommon import emails
|
||||
from qommon import template
|
||||
from qommon import tokens
|
||||
from qommon import errors
|
||||
from ..publisher import get_publisher_class
|
||||
from .. import misc, get_cfg, get_logger
|
||||
from .. import emails
|
||||
from .. import template
|
||||
from .. import tokens
|
||||
from .. import errors
|
||||
|
||||
from qommon.admin.menu import command_icon
|
||||
from ..admin.menu import command_icon
|
||||
|
||||
from qommon.backoffice.menu import html_top
|
||||
from ..backoffice.menu import html_top
|
||||
|
||||
from qommon.admin.emails import EmailsDirectory
|
||||
from ..admin.emails import EmailsDirectory
|
||||
from wcs.qommon.admin.texts import TextsDirectory
|
||||
|
||||
from qommon.cron import CronJob
|
||||
from qommon.afterjobs import AfterJob
|
||||
import qommon.storage as st
|
||||
from ..cron import CronJob
|
||||
from ..afterjobs import AfterJob
|
||||
from .. import storage as st
|
||||
|
||||
from password_accounts import PasswordAccount, HASHING_ALGOS
|
||||
from .password_accounts import PasswordAccount, HASHING_ALGOS
|
||||
|
||||
|
||||
def notify_admins_user_registered(account):
|
||||
|
@ -756,7 +756,7 @@ class MethodAdminDirectory(Directory):
|
|||
return r.getvalue()
|
||||
|
||||
def passwords_submit(self, form):
|
||||
from admin.settings import cfg_submit
|
||||
from wcs.admin.settings import cfg_submit
|
||||
cfg_submit(form, 'passwords',
|
||||
('can_change', 'generate',
|
||||
'min_length', 'max_length',
|
||||
|
@ -806,7 +806,7 @@ class MethodAdminDirectory(Directory):
|
|||
return r.getvalue()
|
||||
|
||||
def identities_submit(self, form):
|
||||
from admin.settings import cfg_submit
|
||||
from wcs.admin.settings import cfg_submit
|
||||
cfg_submit(form, 'identities',
|
||||
('creation', 'email-as-username', 'notify-on-register', 'email-confirmation',
|
||||
'warn_about_unused_account_delay', 'remove_unused_account_delay'))
|
||||
|
|
|
@ -18,7 +18,7 @@ import hashlib
|
|||
|
||||
from quixote import get_publisher
|
||||
|
||||
from qommon.storage import StorableObject
|
||||
from ..storage import StorableObject
|
||||
|
||||
HASHING_ALGOS = {
|
||||
'sha': hashlib.sha1,
|
||||
|
|
|
@ -18,7 +18,7 @@ import os
|
|||
import shutil
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
from qommon.publisher import get_publisher_class
|
||||
from wcs.qommon.publisher import get_publisher_class
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Collect static files in a single location."
|
||||
|
|
|
@ -20,10 +20,10 @@ import os
|
|||
|
||||
from django.conf import settings
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
from qommon.publisher import get_publisher_class
|
||||
from wcs.qommon.publisher import get_publisher_class
|
||||
|
||||
from qommon.vendor import locket
|
||||
from qommon.cron import cron_worker
|
||||
from wcs.qommon.vendor import locket
|
||||
from wcs.qommon.cron import cron_worker
|
||||
from wcs.wf.jump import JUMP_TIMEOUT_INTERVAL
|
||||
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ import os
|
|||
import quixote
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
from qommon.publisher import get_publisher_class
|
||||
from wcs.qommon.publisher import get_publisher_class
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Migrate databases'
|
||||
|
|
|
@ -46,10 +46,10 @@ from django.utils.six.moves.urllib import parse as urlparse
|
|||
from quixote import get_publisher, get_response, get_request
|
||||
from quixote.html import htmltext
|
||||
|
||||
from qommon import _
|
||||
from qommon import get_cfg, get_logger, ezt
|
||||
from qommon.errors import ConnectionError
|
||||
from qommon.template import Template
|
||||
from . import _
|
||||
from . import get_cfg, get_logger, ezt
|
||||
from .errors import ConnectionError
|
||||
from .template import Template
|
||||
|
||||
from django.utils.six import StringIO
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue