Skip to content

Commit

Permalink
Added files for partial searching support
Browse files Browse the repository at this point in the history
  • Loading branch information
Michel Pelletier committed Jan 31, 2000
1 parent a9a0581 commit 0f35953
Show file tree
Hide file tree
Showing 5 changed files with 296 additions and 0 deletions.
180 changes: 180 additions & 0 deletions Vocabulary.py
@@ -0,0 +1,180 @@
##############################################################################
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
# Copyright (c) Digital Creations. All rights reserved.
#
# This license has been certified as Open Source(tm).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
# violation to remove this button, it is requested that the
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
# Disclaimer
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
##############################################################################
"""ZCatalog product"""

from Globals import HTMLFile, MessageDialog
import Globals
from Acquisition import Implicit
from Persistence import Persistent
from OFS.SimpleItem import Item
from SearchIndex import Lexicon, GlobbingLexicon

manage_addVocabularyForm=HTMLFile('addVocabulary',globals())

def manage_addVocabulary(self, id, title, globbing=None, REQUEST=None):
"""Add a Vocabulary object
"""
c=Vocabulary(id, title, globbing)
self._setObject(id, c)
if REQUEST is not None:
return self.manage_main(self,REQUEST)


class Vocabulary(Item, Persistent, Implicit):
"""
A Vocabulary is a user managable relization of a Lexicon object.
"""

meta_type = "Vocabulary"
_isAVocabulary = 1

manage_options=(

## {'label': 'Manage', 'action': 'manage_main',
## 'target': 'manage_main'},

{'label': 'Vocabulary', 'action': 'manage_vocabulary',
'target': 'manage_main'},
{'label': 'Query', 'action': 'manage_query',
'target': 'manage_main'},
)

__ac_permissions__=(

('Manage Vocabulary',
['manage_main', 'manage_vocab', 'manage_query'],
['Manager']),

('Query Vocabulary',
['query',],
['Anonymous', 'Manager']),
)


## manage_main = HTMLFile('vocab_manage_main', globals())
manage_vocabulary = HTMLFile('manage_vocab', globals())
manage_query = HTMLFile('vocab_query', globals())

def __init__(self, id, title='', globbing=None):
""" create the lexicon to manage... """
self.id = id
self.title = title
self.globbing = globbing

if globbing:
self.lexicon = GlobbingLexicon.GlobbingLexicon()
else:
self.lexicon = Lexicon.Lexicon()

def query(self, pattern):
""" """
result = []
for x in self.lexicon.query(pattern):
result.append(self.lexicon._inverseLex[x])
return result


def manage_insert(self, word='', URL1=None, RESPONSE=None):
""" doc string """
self.lexicon.set(word)

if RESPONSE:
RESPONSE.redirect(URL1 + '/manage_vocabulary')

def words(self):
return self.lexicon._lexicon.items()












45 changes: 45 additions & 0 deletions addVocabulary.dtml
@@ -0,0 +1,45 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML lang="en">
<HEAD>
<TITLE>Add Vocabulary</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<H2>Add Vocabulary</H2>

<FORM ACTION="manage_addVocabulary" METHOD="POST">
<TABLE CELLSPACING="2">
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<STRONG>Id</STONG>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="id" SIZE="40">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<EM><STRONG>Title</STRONG></EM>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="title" SIZE="40">
</TD>
</tr>
<tr>
<td align="left" valign="top">
<em><strong>Globbing?</strong></em>
</td>
<td align="left" valign="top">
<input type="checkbox" name="globbing">
</td>
</TR>
<TR>
<TD></TD>
<TD>
<BR><INPUT TYPE="SUBMIT" VALUE=" Add ">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>

18 changes: 18 additions & 0 deletions addZCatalog.dtml
Expand Up @@ -26,6 +26,24 @@
<INPUT TYPE="TEXT" NAME="title" SIZE="40">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<EM><STRONG>Vocabulary</STRONG></EM>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<em>Select Vocabulary?</em> <input type="checkbox" name="vocab">
<select name="vocab_id">
<dtml-in VocabularyIDs>
<option value="<dtml-var sequence-item html_quote>">
<dtml-var sequence-item>
</option>
</dtml-in>
</select><br>
<em>If you do not select a vocabulary, one will be created</em>
</TD>

</tr>
</TR>
<TR>
<TD></TD>
<TD>
Expand Down
38 changes: 38 additions & 0 deletions vocab_manage_main.dtml
@@ -0,0 +1,38 @@
<html>
<head>
<title>Edit <dtml-var title_or_id></title>
</head>
<body bgcolor="#ffffff" link="#000099" vlink="#555555" alink="#77003b">

<dtml-var manage_tabs>

<h2>Edit <dtml-var id></h2>

<!--

<form action="manage_edit" method="POST">
<table cellspacing="2">
<tr>
<th align="left" valign="top"><em>Base</em></th>
<td align="left" valign="top">
<input type="text" name="base" size="40" value="<dtml-if base>&dtml-base;</dtml-if>">
</td>
</tr>
<tr>
<th align="left" valign="top"><em>Path - Not Implimented</em></th>
<td align="left" valign="top">
<input type="text" name="path" size="40" value="<dtml-if path>&dtml-path;</dtml-if>">
</td>
</tr>
<tr><td></td>
<td align="left" valign="top">
<input type="submit" name="submit" value=" Change ">
</td>
</tr>
</table>
</form>

-->

</body>
</html>
15 changes: 15 additions & 0 deletions vocab_query.dtml
@@ -0,0 +1,15 @@
<html>
<head>
<title>Edit <dtml-var title_or_id></title>
</head>
<body bgcolor="#ffffff" link="#000099" vlink="#555555" alink="#77003b">

<dtml-var manage_tabs>

<form action="query" method=POST>
<input name=pattern>
<input type="submit" value="bob"
</form>

</body>
</html>

0 comments on commit 0f35953

Please sign in to comment.