Commit graph

76 commits

Author SHA1 Message Date
Griatch
2ee9e62336 Fixed correct and separate handling of database model bases as compared to its proxy classes using different managers for each type (e.g. ObjectDB.objects.all() will return all ObjectDB instances(including proxy instances) whereas Object.objects.all() will only return Objects) 2014-12-22 08:54:53 +01:00
Griatch
81a18ab340 Fixed nasty lookup bug when querying for multi-word fuzzy matches using mysql. Resolves #527. 2014-09-15 22:26:25 +02:00
Griatch
cfd2f111f1 Updating to make unittests work 2014-05-11 19:41:37 +02:00
Griatch
8046679980 Fixed a missed update to the search functionality that now should use db_tagtype rather than the old and hackish category-prefix solution. Resolves #497. 2014-04-06 10:21:06 +02:00
Griatch
96f26098d1 Fixed comm-related unittest failures 2014-03-09 20:23:14 +01:00
Griatch
942a5aaf9a Fixes copy command issue as per Issue 452. 2014-01-18 10:16:26 +01:00
Kelketek
81c57da56b Made search_object slightly less picky about db fields, per #445 2013-12-23 14:12:09 -06:00
Kelketek
56601d0bbc Fixed issue #448, which prevented searching for objects with a specific attribute name. 2013-12-23 13:55:33 -06:00
Kelketek
46a7e891d1 Fixed issue where object aliases were not being included in searches. 2013-12-23 13:38:40 -06:00
Griatch
1ae17bcbe4 PEP8 cleanup of the entire codebase. Unchanged are many cases of too-long lines, partly because of the rewrite they would require but also because splitting many lines up would make the code harder to read. Also the third-party libraries (idmapper, prettytable etc) were not cleaned. 2013-11-14 19:31:17 +01:00
Griatch
06a0bea8d6 Added fix to object.contents cache as well as reworked the extent of cache hooks on location modification. 2013-10-21 21:17:32 +02:00
Griatch
a00179b742 Fixed an error in aliasing 2013-10-18 22:31:22 +02:00
Griatch
8bd431b385 Removed deprecated Attribute methods from evennia distro. Removed MUX help files. 2013-08-25 16:41:18 +02:00
Griatch
06e858b3f6 Moved permissions into a the tag system as a separate handler. Permissions still don't work quite right yet. 2013-08-24 23:57:44 +02:00
Griatch
befe6a6db0 Made some extra opt-out checking in object manager. 2013-08-24 11:36:28 +02:00
Kelketek
b0bf60cda4 Merge from DBenoy's branch. 2013-07-27 19:05:05 -05:00
Kelketek
08ee399ea2 Better way of doing that with less side effects. Thought it wasn't possible earlier because I misread something. 2013-07-21 14:18:36 -05:00
Kelketek
427dcc3985 Optimized Scripts admin page. Fixed related name for objects on attributes.
Repaired search. Removed some backwards compatible parts of picklefield since
we aren't supporting version older than 1.5 and they were obscuring the true
cause of some issues.
2013-07-21 09:44:34 -05:00
Daniel Benoy
1e5b52f685 Object search routines now distinguish between candidates=None, and
candidates=[]
2013-07-17 03:30:48 -04:00
Griatch
6bc16e46cc Made aliases work with the new handler. The location.contents updated is not working yet - this causes locational information to not be available until objects and manually initialized (e.g. by calling examine #dbref) 2013-07-12 20:21:52 +02:00
Griatch
c676c9965f Merged. Still need to update some migrations. 2013-07-11 19:11:27 +02:00
Griatch
46d1c48a38 Working implementation of User->PlayerDB conversion. Superuser must be created separately. The player-create method was corrected, along with the most obvious places where the user-setup was used. One can log in and look around but it's not heavily debugged yet. 2013-07-11 18:03:07 +02:00
Griatch
2b332c3b9a Attribute cache is working, lots of other updates, but still not a cleanly updatable system. It seems the Attribute-migrations are not coming through properly. Fixed a misnamed table in the comm app. 2013-07-11 09:51:52 +02:00
Griatch
878f83aba0 Merge. Added updates to some of the fixes, such as making channel connetion updates look for online Players instead of online Sessions (the latter would have created duplicates in a multi-session environment). 2013-06-30 13:57:21 +02:00
Kelketek
240dee1d5b Fixed issue with attribute search not properly handling attribute prefixes. 2013-06-29 15:10:14 -05:00
Griatch
a9a70c91b1 Fixed a bug with the who command. 2013-05-23 21:38:01 +02:00
Griatch
efdb954491 Fixed a logical error in obj.manager causing it to fail to find arbitrary db_>fieldname>. Resolves Issue 373. 2013-05-21 14:29:50 +02:00
Kelketek
ad7d8fc9fd Fixed typeclass searching for objects. 2013-05-18 18:47:04 -05:00
Griatch
51cf5461fa Fixed a typo on the @ic command's search_object call. 2013-05-14 21:47:25 +02:00
Griatch
e15d6dfb6e Fixed a search feature that was not included in the revision of the object search mechanism - the ability to search based on an object. Resolves Issue 363. 2013-05-14 21:17:29 +02:00
Griatch
bd9421d4b0 Implemented unittests for all default commands in a new and much faster way. 2013-05-12 19:53:19 +02:00
Griatch
78e7346962 Updated commands to use the new objectdb.search API. 2013-05-11 23:22:02 +02:00
Griatch
218e4a149c Implemented a modified and cleaned objectdb.search and accompanying object.manager.search_object that also searches globally. The default commands have not yet been converted to use the new call. 2013-05-11 20:01:19 +02:00
Griatch
80a6745a1e Made Attribute value queries also work with database objects by overloading the Attribute manager methods in question. Added procpool support for the new serializer functions and cleaned up some things. 2013-04-14 16:36:44 +02:00
Griatch
b26c3ab872 Fixed bugs and allowed for logging in using one character. Added a simple command for creating a new character. 2013-02-03 17:00:46 +01:00
Griatch
87bfb97853 Rewrote the fuzzy-matching routine to correctly handle fuzzy, global searches on keys and aliases. 2012-10-23 20:29:03 +02:00
lagos
904884d4ed Fixes multiple issues with searching.
* dbref now respect candidate lists. Previously a dbref match would ignore
  candidates which permitted you to drop any object from anywhere by specifying
  a dbref.
* If candidates is [], we now return right away. Without this, a candidate list
  of [] would not filter out anything because short circuiting like:
  cand_restriction = candidates and Q(pk__in=candidates_id) or Q()
  will use Q() (what we really want is nothing to match). This would permit you
  to drop any object you can refer by nick or name if your inventory was empty.
* Minor fix of 'ret_index' for typo'ed 'reg_index'.
2012-10-22 18:03:10 -07:00
Griatch
c982cdbe3d Fixed a traceback when searching with the *-syntax and not finding a match. Resolves Issue 297. 2012-10-14 17:27:57 +02:00
Griatch
31daf5b013 Added an extra check to make sure the 'candidates' keyword to ev.search_object always contain proper dbobjs and not typeclasses. Resolves Issue 280. 2012-10-14 13:25:25 +02:00
Griatch
33c15e99d2 Added a check to allow obj.search to also search for 0. 2012-09-29 16:24:47 +02:00
Griatch
4944a589cc Cleaned up and fixed problems in searching by attribute-value. Resolves Issue 267. 2012-09-29 00:09:55 +02:00
Griatch
c819cdc2a6 Added a change to get_objs_with_attr_values that means simple python lookup values will be searched for directly in the database by pickling the input argument in the form used by Attributes. This should lead to a more efficient attrvalue lookup for larger databases (as long as value is a string, int or float and not a compound object, at which the lookup is continuously done in two steps filtering through the Attribute value mechanism. 2012-09-28 00:02:31 +02:00
Griatch
56c28f7e44 Fixed a strange typo in object-manager's get_attribute_with_value(). Also implemented a few further suggestions and fixes to object search. 2012-09-27 22:18:46 +02:00
Griatch
59ccd3eb38 Fixed a bug in exact search pattern matching. 2012-09-27 21:29:01 +02:00
Griatch
160d4a2807 Minor typo cleanups. 2012-09-17 22:16:18 +02:00
Griatch
c53a9b5770 Changed how Objects are searched, using proper Django Q objects instead of hack-y evals to build queries. This has lead to a number of changes to the ObjectDB manager search. Notably there is now no way to supply a "location" to either of the manager search methods anymore. Instead you can now supply the keyword "candidates", a list of objects which should be used to limit the search. This is much more generic than giving location. The higher-level search (like caller.search, reached from commands) have not changed its API, so commands should work the same unless you are using the manager backbone directly. This search function is now using location to create the "candidates" list. Some other things, like matching for "me" and "here" have also been moved up to a level were it can be easily overloaded. "me" and "here" etc were also moved under i18n.
As part of this overhaul I implemented the partial_matching algorithm originally asked for by user "Adam_ASE" over IRC. This will allow for (local-only) partial matching of objects. So "big black sword" will now be matched by "bi", "sword", "bi bla" and so on. The partial matcher sits in src.utils.utils.py if one wants to use it for something else.
2012-09-17 15:31:50 +02:00
Griatch
5117bd2a0a Minor fixes and reducing some sql calls in various managers. 2012-08-22 16:15:52 +02:00
Griatch
cc88d38ab6 Some optimizations towards speeding up getting the contents of a location. 2012-08-19 11:45:13 +02:00
Griatch
889708cf07 Make object search handle a dbref=0. 2012-08-18 23:17:14 +02:00
Griatch
8ad4f4a9fc Changed player.search to only search for players explicitly.
Added a MuxCommandOOC class to handle the OOC commands in a more uniform way.
Fixed the @ic/@ooc and page commands. Resolves issue 233. Resolves issue 234.
2012-05-17 19:42:37 +02:00