Skip to content
This repository has been archived by the owner on Feb 9, 2025. It is now read-only.

Commit

Permalink
Bugfixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
david committed Oct 11, 2002
1 parent 37863c0 commit 3a1d3d6
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 64 deletions.
4 changes: 2 additions & 2 deletions bin/ldpdb-import
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ def copy_users():
newuser.email = maintainer.email
newuser.maintainer_id = maintainer.id
newuser.username_from_name()
if newusers[newuser.username]:
if newusers.has_key(newuser.username):
print 'NOTICE: maintainer username is taken: ' +newuser.username
newuser.username_from_email()
print ' using email changed it to: ' + newuser.username
Expand All @@ -280,7 +280,7 @@ def copy_users():
newuser.notes = editor.notes
newuser.editor_id = editor.id
newuser.username_from_name()
if newusers[newuser.username]:
if newusers.has_key(newuser.username):
print 'NOTICE: editor username is taken: ' +newuser.username
newuser.username_from_email()
print ' using email changed it to: ' + newuser.username
Expand Down
9 changes: 3 additions & 6 deletions pylib/CoreDM.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,9 @@

dms = datamanager.DataManagers()
dms.set_object_classes(persistence)

# Cache only 100 entries in the log.
dms.log.cache.set_size(100)

# Do not cache sessions at all.
dms.session.cache.set_size(0)

# Preload data caches
#for key in dms.keys():
# if key <> 'log':
# dm = dms[key]
# dm.get_all()
49 changes: 19 additions & 30 deletions pylib/Tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -1648,31 +1648,21 @@ def method(self, uri):

class TabNews(Table):

def __init__(self, items=0):
"""
The off-by-one error is intentional. If 0 is passed in items, we never
stop processing items, but list them all instead.
"""

def __init__(self):
Table.__init__(self, 'news', self.method)
self.items = items

def method(self, uri):
log(3, 'Creating recent news')
box = WOStringIO('<table class="box nontabular" width="100%">\n'
'<tr><th colspan="2">|strnews|</th></tr>')

# display first 'self.items' items only
news = dms.news.get_all()
keys = news.sort_by_desc('pub_date')
if self.items > 0 :
keys = keys[:self.items]
for key in keys:
news = news[key]
if not news.news[uri.lang]==None:
if state.session and state.user.can_edit(news_id=news.id)==1:
for key in news.sort_by_desc('pub_date'):
newsitem = news[key]
if newsitem.news.has_key(uri.lang):
if state.session and state.user.can_edit(news_id=newsitem.id)==1:
edit_icon = '<a href="|uri.base|news_edit/%s|uri.lang_ext|">%s</a>\n' \
% (str(news.id),EDIT_ICON_SM)
% (str(newsitem.id),EDIT_ICON_SM)
else:
edit_icon = ''

Expand All @@ -1684,9 +1674,9 @@ def method(self, uri):
' <td>%s</td>'
'</tr>\n'
% (edit_icon,
news.headline[uri.lang],
news.pub_date,
news.news[uri.lang]))
newsitem.headline[uri.lang],
newsitem.pub_date,
newsitem.news[uri.lang]))
box.write('</table>\n')
return box.get_value()

Expand Down Expand Up @@ -1721,7 +1711,7 @@ def method(self, uri):
languages = dms.language.get_by_keys([['supported', '=', 1]])
for key in languages.keys():
language = languages[key]
if not news.news[language.code]==None:
if language.code in news.headline.keys():
box.write('<form method="GET" action="|uri.base|data/save/news_lang">\n'
'<input type=hidden name="news_id" value="%s">\n'
'<input type=hidden name="lang" value="%s">\n'
Expand All @@ -1730,15 +1720,15 @@ def method(self, uri):
'<tr class="%s"><td class="label">|strheadline|</td><td>%s</td><td></td></tr>\n'
'<tr class="%s"><td class="label">|strnews|</td><td width="100%%">%s</td><td>%s</td></tr>'
'</form>'
% (news.id, lang,
% (news.id, language.code,
odd_even.get_next(), language.name[uri.lang],
odd_even.get_last(), widgets.version(news.version[lang]),
odd_even.get_last(), widgets.headline(news.headline[lang]),
odd_even.get_last(), widgets.news(news.news[lang]),
odd_even.get_last(), widgets.version(news.version[language.code]),
odd_even.get_last(), widgets.headline(news.headline[language.code]),
odd_even.get_last(), widgets.news(news.news[language.code]),
widgets.save()))

# Add a new translation if there are untranslated languages.
if len(news.untranslated_lang_keys(uri.lang)) > 0:
if len(news.untranslated_lang_keys) > 0:
box.write('<form method="GET" action="|uri.base|data/save/newnews_lang">\n'
'<input type=hidden name="news_id" value="%s">\n'
'<tr class="%s"><td class="sectionlabel" colspan="3">|stradd_translation|</td></tr>'
Expand Down Expand Up @@ -1890,7 +1880,7 @@ def method(self, uri):
supported_languages = dms.language.get_by_keys([['supported', '=', 1]])
for key in supported_languages.keys():
language = supported_languages[key]
if not page.page[language.code]==None:
if language.code in page.page.keys():
box.write('<form method="GET" action="|uri.base|data/save/page_lang">\n'
'<input type=hidden name="page_code" value="%s">\n'
'<input type=hidden name="lang" value="%s">\n'
Expand Down Expand Up @@ -1925,8 +1915,7 @@ def method(self, uri):
odd_even.get_last(), widgets.menu_name(page.menu_name[language.code]),
odd_even.get_last(), widgets.page(escape_tokens(page.page[language.code])),
widgets.save()))

if len(page.untranslated_lang_keys(uri.lang)) > 0:
if len(page.untranslated_lang_keys) > 0:
box.write('<form method="GET" action="|uri.base|data/save/newpage_lang">\n'
'<input type=hidden name="page_code" value="%s">\n'
'<tr class="%s"><td class="sectionlabel" colspan="3">|stradd_translation|</td></tr>'
Expand Down Expand Up @@ -2064,7 +2053,7 @@ def method(self, uri):
widgets.save()))

# Add a new translation if there are untranslated languages.
if len(webstring.untranslated_lang_keys(uri.lang)) > 0:
if len(webstring.untranslated_lang_keys) > 0:
box.write('<form method="GET" action="|uri.base|data/save/newstring_lang">\n'
'<input type=hidden name="string_code" value="%s">\n'
'<tr class="%s">'
Expand Down Expand Up @@ -2594,7 +2583,7 @@ def __init__(self):
self['tabdocs'] = DocTable()
self['tabdocs_expanded'] = DocTableExpanded()
self['tabdocadmin'] = DocAdmin()
self['tabrecentnews'] = TabNews(items=10)
self['tabrecentnews'] = TabNews()
self['tabnews'] = TabNews()
self['tabnewsitem'] = TabNewsItem()
self['tabpages'] = TabPages()
Expand Down
8 changes: 4 additions & 4 deletions pylib/data/save.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,9 +333,9 @@ def news(req, news_id, pub_date):
def news_lang(req, news_id, lang, headline, news, version):
newsitemi18ns = dms.news_i18n.get_by_keys([['news_id', '=', int(news_id)], ['lang', '=', lang]])
newsitemi18n = newsitemi18ns[newsitemi18ns.keys()[0]]
newsitemi18n.headline[lang] = headline
newsitemi18n.news[lang] = news
newsitemi18n.version[lang] = version
newsitemi18n.headline = headline
newsitemi18n.news = news
newsitemi18n.version = version
newsitemi18n.save()
go_back(req)

Expand All @@ -346,7 +346,7 @@ def newnews_lang(req, news_id, lang, headline, news, version):
newsitem.headline = headline
newsitem.news = news
newsitem.version = version
dms.news.add(newsitem)
dms.news_i18n.add(newsitem)
go_back(req)

def newpage(req, page_code, section_code, template_code,
Expand Down
7 changes: 4 additions & 3 deletions pylib/datamanager/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ def get_cached_by_keys(self, filters):
obj_value = getattr(object, data_field.attribute)
if operator.upper()=='LIKE':
if len(value) > len(obj_value): continue
if value.upper()==obj_value.upper()[:len(value)]:
set[object.key] = object
if value.upper() <> obj_value.upper()[:len(value)]:
match = 0
elif operator=='=':
if obj_value<>value: match = 0
elif operator=='<':
Expand All @@ -249,6 +249,7 @@ def get_cached_by_keys(self, filters):
if obj_value < value: match = 0
else:
raise UnknownOperator('Unrecognized operator: %s' %(data_field.operator))
if match==0: break
if match==1:
set[object.key] = object
return set
Expand Down Expand Up @@ -382,7 +383,7 @@ def save(self, object):
if field.key_field==1:
where_list.append(field.field_name + '=' + value)
sql = 'UPDATE %s SET %s WHERE %s' % (self.table.name, string.join(update_list, ', '), string.join(where_list, ' AND '))
print sql
# print sql
db.runsql(sql)
db.commit()
self.cache.add(object)
Expand Down
20 changes: 10 additions & 10 deletions pylib/persistence/news.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,16 @@
class News(Persistence):

def __getattr__(self, attribute):
if attribute in ('headline', 'news', 'version'):
name = LampadasCollection()
description = LampadasCollection()
if attribute=='untranslated_lang_keys':
untranslated = []
supported_langs = self.dms.language.get_by_keys([['supported', '=', 1]])
for key in supported_langs.keys():
if key not in self.headline.keys():
untranslated.append(key)
return untranslated
elif attribute in ('headline', 'news', 'version'):
version = LampadasCollection()
headline = LampadasCollection()
news = LampadasCollection()
i18ns = self.dms.news_i18n.get_by_keys([['news_id', '=', self.id]])
for key in i18ns.keys():
Expand All @@ -25,10 +32,3 @@ def __getattr__(self, attribute):
else:
raise AttributeError('No such attribute %s' % attribute)

def untranslated_lang_keys(self, lang):
untranslated = []
supported_langs = self.dms.language.get_by_keys([['supported', '=', 't']])
for key in supported_langs.keys():
if key not in self.headline.keys():
untranslated.append(key)
return untranslated
9 changes: 8 additions & 1 deletion pylib/persistence/page.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,14 @@
class Page(Persistence):

def __getattr__(self, attribute):
if attribute=='template':
if attribute=='untranslated_lang_keys':
untranslated = []
supported_langs = self.dms.language.get_by_keys([['supported', '=', 't']])
for key in supported_langs.keys():
if key not in self.title.keys():
untranslated.append(key)
return untranslated
elif attribute=='template':
return self.dms.template.get_by_id(self.template_code)
elif attribute=='section':
return self.dms.section.get_by_id(self.section_code)
Expand Down
16 changes: 8 additions & 8 deletions pylib/persistence/webstring.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,14 @@
class WebString(Persistence):

def __getattr__(self, attribute):
if attribute in ('string', 'version'):
if attribute=='untranslated_lang_keys':
untranslated = []
supported_langs = self.dms.language.get_by_keys([['supported', '=', 't']])
for key in supported_langs.keys():
if key not in self.string.keys():
untranslated.append(key)
return untranslated
elif attribute in ('string', 'version'):
webstring = LampadasCollection()
version = LampadasCollection()
i18ns = self.dms.string_i18n.get_by_keys([['string_code', '=', self.code]])
Expand All @@ -21,10 +28,3 @@ def __getattr__(self, attribute):
else:
raise AttributeError('No such attribute %s' % attribute)

def untranslated_lang_keys(self, lang):
untranslated = []
supported_langs = self.dms.language.get_by_keys([['supported', '=', 't']])
for key in supported_langs.keys():
if key not in self.string.keys():
untranslated.append(key)
return untranslated

0 comments on commit 3a1d3d6

Please sign in to comment.