731 Commits

Author SHA1 Message Date
Ross Lawley
3861103585 Updated connection exception to provide more info on the cause.
Fixes #178
2011-05-25 09:36:25 +01:00
Ross Lawley
c3a8840435 Blinker signals added 2011-05-24 20:27:19 +01:00
Ross Lawley
3246cf8bdd Merge pull request #177 from sbook/feature/update_lists
Added the ability to update individual items in ListFields.

Example: 
  
   Message.objects(pk=12).update(set__comments__5__body="Testing 123")
2011-05-24 06:13:10 -07:00
Ross Lawley
7ecf84395a Improved DictFields
Allow searching multiple levels deep in DictFields
Allow DictField entries containing strings to use matching operators

Thanks again to @theojulien for the initial code #108
2011-05-24 14:07:58 +01:00
Ross Lawley
32bab13a8a Added MapField, similar to DictField
Similar to DictField except the value of each entry is always of a certain
(declared) field type.

Thanks again to @theojulienne for the code #108
2011-05-24 12:50:48 +01:00
Ross Lawley
088c40f9f2 Added Abstract Base Classes
Thanks to @theojulienne for the code :) #108
2011-05-24 12:30:12 +01:00
Alistair Roche
305fd4b232 Fixed whitespace 2011-05-24 11:44:43 +01:00
Alistair Roche
fe5111743d Merge branch 'dev' into feature/update_lists
Conflicts:
	mongoengine/queryset.py
2011-05-24 11:33:44 +01:00
Alistair Roche
8427877bd2 Merge remote branch 'upstream/dev' into dev 2011-05-24 11:32:23 +01:00
Alistair Roche
118c0deb7a Fixed list-indexing syntax; created tests. 2011-05-24 11:31:44 +01:00
Ross Lawley
1126c85903 Added Custom Objects Managers
Managers can now be directly declared in a Document eg::

```python
    class CustomQuerySetManager(QuerySetManager):

        @staticmethod
        def get_queryset(doc_cls, queryset):
            return queryset(is_published=True)

    class Post(Document):
        is_published = BooleanField(default=False)
        published = CustomQuerySetManager()
```

Refactored the name of the `_manager_func` to `get_queryset` to mark it as
part the public API.  If declaring a Manager with a get_queryset method, it
should be a staticmethod, that accepts the document_class and the queryset.

Note - you can still use decorators in fact in the example below,
we effectively do the same thing as the first example and is much less verbose.

```python

    class Post(Document):
        is_published = BooleanField(default=False)

        @queryset_manager
        def published(doc_cls, queryset):
            return queryset(is_published=True)
```

Thanks to @theojulienne for the initial impetus and code sample #108
2011-05-24 11:26:46 +01:00
Alistair Roche
13935fc335 Merge branch 'dev' into feature/update_lists 2011-05-24 08:58:38 +01:00
Alistair Roche
36034ee15f 'set__comments__0__body="asdf"' syntax works 2011-05-23 18:27:01 +01:00
Ross Lawley
1b72ea9cc1 Fixed detection of unique=True in embedded documents.
Added some more test cases - thanks to @heyman for the initial
test case.

Closes #172
Refs #171
2011-05-20 16:09:03 +01:00
Ross Lawley
04953351f1 Merge branch 'feature/slicing_fields' into dev 2011-05-20 14:18:48 +01:00
Ross Lawley
9260ff9e83 Updated docs and added a NotRegistered exception
For handling GenericReferences that reference documents that haven't
been imported.

Closes #170
2011-05-20 10:22:22 +01:00
Ross Lawley
08d1689268 Updated to handle the converntional api style for slicing a field
Added testcase to demonstrate embedded slicing as well.

Refs #167
2011-05-20 09:47:41 +01:00
Ross Lawley
40b69baa29 Implementing Write Concern
Added write_options dict to save, update, update_one and get_or_create.
Thanks to justquick for the initial ticket and code.

Refs #132
2011-05-19 16:49:00 +01:00
Ross Lawley
efba9ef52a Merge remote branch 'srackham/gridfs-read-seek' into gridfs-read-seek 2011-05-19 10:14:51 +01:00
Ross Lawley
fc2aff342b Unique indexes are created before user declared indexes
This ensures that indexes are created with the unique flag, if a user
declares the index, that would automatically be declared by the `unique_indexes`
logic.

Thanks to btubbs for the test case.
Fixes #129
2011-05-18 17:37:41 +01:00
Ross Lawley
371dbf009f Updated QuerySet to allow more granular fields control.
Added a fields method and tests showing the retrival of subranges of
List Fields.

Refs #167
2011-05-18 16:39:19 +01:00
Ross Lawley
5d5a84dbcf Spacing issue cleaned up 2011-05-18 16:24:35 +01:00
Ross Lawley
7ba40062d3 Fixes ordering with custom db field names
Closes #125
2011-05-18 12:18:33 +01:00
Ross Lawley
1781c4638b Changed how the connection identity key is made
Uses the current thread identity as well as the process idenity to form
the key.

Fixes #151
2011-05-18 11:41:23 +01:00
Ross Lawley
31521ccff5 Added queryset clone support and tests, thanks to hensom
Fixes #130
2011-05-18 10:30:07 +01:00
Ross Lawley
e3b4563c2b Merge remote branch 'hensom/master' into dev 2011-05-18 10:06:16 +01:00
Ross Lawley
378b52321b Merge commit '18baa2dd7a4e909169b694cb6ec36214c5a51506' 2011-05-18 09:17:05 +01:00
Ross Lawley
98436f271e Merge branch 'master' into dev 2011-05-18 08:13:58 +01:00
Matt Chisholm
608f08c267 Implement spherical geospatial query operators & unit tests
fixes https://github.com/hmarr/mongoengine/issues/163
2011-05-10 12:28:56 +02:00
Nick Vlku Jr
c379ff883a Merge remote branch 'upstream/master' into dev 2011-05-10 00:13:15 -04:00
Ross Lawley
e9ad04f763 Merge pull request #160 from Ankhbayar/master
Added __hash__, __ne__ with test. 
Thanks Ankhbayar
2011-05-09 02:28:41 -07:00
Ross Lawley
f0277736e2 Updated queryset to handle latest version of pymongo
map_reduce now requires an output.
Reverted previous _lookup_field change, until a test case
is produced for the incorrect behaviour.
2011-05-09 10:22:37 +01:00
Ross Lawley
49c978ad9e Merge remote branch 'upstream/master' 2011-05-09 09:01:19 +01:00
Harry Marr
eeae1b4aea Merge pull request #148 from srackham/drop-close-warning
Drop gridfs close warning
2011-05-08 06:41:28 -07:00
Gregg Lind
9c1ad5f631 Tiny spelling correction / clarification. 2011-05-04 18:01:06 -07:00
Alistair Roche
76cbb66843 Fixed error with _lookup_field
It was failing when given multiple fields
2011-04-28 14:31:19 +01:00
Анхбаяр Лхагвадорж
96dbeea171 Added __hash__, __ne__ with test. 2011-04-12 20:23:16 +08:00
Stuart Rackham
829df581f0 Drop gridfs close warning 2011-04-04 15:19:57 +12:00
Stuart Rackham
bd84d08b95 Fixed misspelt variable name. 2011-04-04 13:44:36 +12:00
Stuart Rackham
2c7469c62a Additional file-like behavior for FileField (optional size arg for read
method; fixed seek and tell methods for reading files).
2011-04-03 15:21:00 +12:00
Harry Marr
d7c9694be0 Merge branch 'master' of https://github.com/radev/mongoengine into dev 2011-03-06 13:23:30 +00:00
Harry Marr
69171282e9 Merge branch 'master' of https://github.com/lig/mongoengine into dev
Conflicts:
	.gitignore
2011-03-06 13:11:21 +00:00
Michael Henson
53d66b7267 Added QuerySet.clone() to support copying querysets 2011-01-27 23:51:10 -05:00
Nick Vlku
ba9813e5a3 Fixed Issue 122: item_frequencies doesn't work if tag is also the name of a native js function
Did this by checking if the item is a native function, if it is I set it to an initial numeric value.  Future occurrences of the tag count correctly.
2011-01-09 22:30:18 -05:00
Harry Marr
ce8b3ea0a1 Merge remote branch 'nvie/dev' into dev 2011-01-09 23:29:11 +00:00
Harry Marr
559fc46037 Merge branch 'master' of https://github.com/sshwsfc/mongoengine into sshwsfc-dev 2011-01-09 23:21:22 +00:00
Harry Marr
10c0b035ae Merge remote branch 'aleszoulek/dev' into dev 2011-01-09 23:19:41 +00:00
Harry Marr
37818d2d72 Merge branch 'dev' of https://github.com/alefnula/mongoengine into alefnula-dev 2011-01-09 21:00:03 +00:00
Harry Marr
357dd0e7cc Merge remote branch 'iapain/master' into dev 2011-01-09 20:52:39 +00:00
Serge Matveenko
34b923b7ac Fix Issue#115: Possibility to bypass class_name check in queryset. 2010-12-21 18:29:51 +03:00