Skip to content

Commit

Permalink
further import cleans for models
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Mar 29, 2012
1 parent 5c063b1 commit d9d6a71
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 44 deletions.
5 changes: 3 additions & 2 deletions ckan/model/activity.py
Expand Up @@ -6,6 +6,7 @@
from core import *
from package import *
import types as _types
import domain_object

__all__ = ['Activity', 'activity_table',
'ActivityDetail', 'activity_detail_table',
Expand All @@ -32,7 +33,7 @@
Column('data', _types.JsonDictType),
)

class Activity(DomainObject):
class Activity(domain_object.DomainObject):

def __init__(self, user_id, object_id, revision_id, activity_type,
data=None):
Expand All @@ -49,7 +50,7 @@ def __init__(self, user_id, object_id, revision_id, activity_type,

mapper(Activity, activity_table)

class ActivityDetail(DomainObject):
class ActivityDetail(domain_object.DomainObject):

def __init__(self, activity_id, object_id, object_type, activity_type,
data=None):
Expand Down
32 changes: 16 additions & 16 deletions ckan/model/authz.py
Expand Up @@ -5,12 +5,12 @@
from meta import *
from core import *
from package import *
from group import Group
from types import make_uuid
from user import User
import group
import user as _user
from core import System
import authorization_group as auth_group
import domain_object
import types as _types

PSEUDO_USER__LOGGED_IN = u'logged_in'
PSEUDO_USER__VISITOR = u'visitor'
Expand Down Expand Up @@ -88,14 +88,14 @@ class Role(Enum):
## Table Definitions

role_action_table = Table('role_action', metadata,
Column('id', UnicodeText, primary_key=True, default=make_uuid),
Column('id', UnicodeText, primary_key=True, default=_types.make_uuid),
Column('role', UnicodeText),
Column('context', UnicodeText, nullable=False),
Column('action', UnicodeText),
)

user_object_role_table = Table('user_object_role', metadata,
Column('id', UnicodeText, primary_key=True, default=make_uuid),
Column('id', UnicodeText, primary_key=True, default=_types.make_uuid),
Column('user_id', UnicodeText, ForeignKey('user.id'), nullable=True),
Column('authorized_group_id', UnicodeText, ForeignKey('authorization_group.id'), nullable=True),
Column('context', UnicodeText, nullable=False), # stores subtype
Expand Down Expand Up @@ -157,7 +157,7 @@ def get_object_role_class(cls, domain_obj):

@classmethod
def user_has_role(cls, user, role, domain_obj):
assert isinstance(user, User), user
assert isinstance(user, _user.User), user
q = cls._user_query(user, role, domain_obj)
return q.count() == 1

Expand Down Expand Up @@ -252,7 +252,7 @@ def __repr__(self):
protected_objects[PackageRole.protected_object] = PackageRole

class GroupRole(UserObjectRole):
protected_object = Group
protected_object = group.Group
name = 'group'

def __repr__(self):
Expand Down Expand Up @@ -346,18 +346,18 @@ def setup_user_roles(_domain_object, visitor_roles, logged_in_roles, admins=[]):
'''NB: leaves caller to commit change'''
assert type(admins) == type([])
admin_roles = [Role.ADMIN]
visitor = User.by_name(PSEUDO_USER__VISITOR)
visitor = _user.User.by_name(PSEUDO_USER__VISITOR)
assert visitor
for role in visitor_roles:
add_user_to_role(visitor, role, _domain_object)
logged_in = User.by_name(PSEUDO_USER__LOGGED_IN)
logged_in = _user.User.by_name(PSEUDO_USER__LOGGED_IN)
assert logged_in
for role in logged_in_roles:
add_user_to_role(logged_in, role, _domain_object)
for admin in admins:
# not sure if admin would reasonably by None
if admin is not None:
assert isinstance(admin, User), admin
assert isinstance(admin, _user.User), admin
if admin.name in (PSEUDO_USER__LOGGED_IN, PSEUDO_USER__VISITOR):
raise NotRealUserException('Invalid user for domain object admin %r' % admin.name)
for role in admin_roles:
Expand All @@ -381,7 +381,7 @@ def give_all_packages_default_user_roles():
for rev in revs:
if rev.revision.author:
# rev author is not Unicode!!
user = User.by_name(unicode(rev.revision.author))
user = _user.User.by_name(unicode(rev.revision.author))
if user:
admins.append(user)
# remove duplicates
Expand Down Expand Up @@ -431,7 +431,7 @@ def setup_default_user_roles(_domain_object, admins=[]):
@param admins - a list of User objects
NB: leaves caller to commit change.
'''
assert isinstance(_domain_object, (Package, Group, System, auth_group.AuthorizationGroup)), _domain_object
assert isinstance(_domain_object, (Package, group.Group, System, auth_group.AuthorizationGroup)), _domain_object
assert isinstance(admins, list)
user_roles_ = get_default_user_roles(_domain_object)
setup_user_roles(_domain_object,
Expand All @@ -443,7 +443,7 @@ def clear_user_roles(_domain_object):
assert isinstance(_domain_object, domain_object.DomainObject)
if isinstance(_domain_object, Package):
q = Session.query(PackageRole).filter_by(package=_domain_object)
elif isinstance(_domain_object, Group):
elif isinstance(_domain_object, group.Group):
q = Session.query(GroupRole).filter_by(group=_domain_object)
else:
raise NotImplementedError()
Expand All @@ -461,7 +461,7 @@ def clear_user_roles(_domain_object):
polymorphic_on=user_object_role_table.c.context,
polymorphic_identity=u'user_object',
properties={
'user': orm.relation(User,
'user': orm.relation(_user.User,
backref=orm.backref('roles',
cascade='all, delete, delete-orphan'
)
Expand All @@ -488,9 +488,9 @@ def clear_user_roles(_domain_object):
)

mapper(GroupRole, group_role_table, inherits=UserObjectRole,
polymorphic_identity=unicode(Group.__name__),
polymorphic_identity=unicode(group.Group.__name__),
properties={
'group': orm.relation(Group,
'group': orm.relation(group.Group,
backref=orm.backref('roles',
cascade='all, delete, delete-orphan'
),
Expand Down
14 changes: 7 additions & 7 deletions ckan/model/group.py
Expand Up @@ -3,9 +3,9 @@
from meta import *
from core import *
from sqlalchemy.orm import eagerload_all
from domain_object import DomainObject
from package import *
from types import make_uuid
import types as _types
import domain_object
import vdm.sqlalchemy
from ckan.model import extension, User
from sqlalchemy.ext.associationproxy import association_proxy
Expand All @@ -15,7 +15,7 @@
'member_revision_table', 'member_table']

member_table = Table('member', metadata,
Column('id', UnicodeText, primary_key=True, default=make_uuid),
Column('id', UnicodeText, primary_key=True, default=_types.make_uuid),
Column('table_name', UnicodeText, nullable=False),
Column('table_id', UnicodeText, nullable=False),
Column('capacity', UnicodeText, nullable=False),
Expand All @@ -26,7 +26,7 @@
member_revision_table = make_revisioned_table(member_table)

group_table = Table('group', metadata,
Column('id', UnicodeText, primary_key=True, default=make_uuid),
Column('id', UnicodeText, primary_key=True, default=_types.make_uuid),
Column('name', UnicodeText, nullable=False, unique=True),
Column('title', UnicodeText),
Column('type', UnicodeText, nullable=False),
Expand All @@ -41,7 +41,7 @@

class Member(vdm.sqlalchemy.RevisionedObjectMixin,
vdm.sqlalchemy.StatefulObjectMixin,
DomainObject):
domain_object.DomainObject):
def __init__(self, group=None, table_id=None, group_id=None,
table_name=None, capacity='member', state='active'):
self.group = group
Expand Down Expand Up @@ -76,7 +76,7 @@ def related_packages(self):

class Group(vdm.sqlalchemy.RevisionedObjectMixin,
vdm.sqlalchemy.StatefulObjectMixin,
DomainObject):
domain_object.DomainObject):

def __init__(self, name=u'', title=u'', description=u'',
type=u'group', approval_status=u'approved' ):
Expand Down Expand Up @@ -183,7 +183,7 @@ def search_by_name(cls, text_query, group_type=None):
return q.order_by(cls.title)

def as_dict(self, ref_package_by='name'):
_dict = DomainObject.as_dict(self)
_dict = domain_object.DomainObject.as_dict(self)
_dict['packages'] = [getattr(package, ref_package_by) for package in self.packages]
_dict['extras'] = dict([(key, value) for key, value in self.extras.items()])
if ( self.type == 'publisher' ):
Expand Down
12 changes: 6 additions & 6 deletions ckan/model/package.py
Expand Up @@ -12,10 +12,10 @@
from meta import metadata, Session
import vdm.sqlalchemy

from types import make_uuid, iso_date_to_datetime_for_sqlite
from core import make_revisioned_table, Revision, State
from license import License, LicenseRegister
from domain_object import DomainObject
import types as _types
import domain_object
import ckan.misc
from activity import Activity, ActivityDetail

Expand All @@ -29,7 +29,7 @@

## Our Domain Object Tables
package_table = Table('package', metadata,
Column('id', types.UnicodeText, primary_key=True, default=make_uuid),
Column('id', types.UnicodeText, primary_key=True, default=_types.make_uuid),
Column('name', types.Unicode(PACKAGE_NAME_MAX_LENGTH),
nullable=False, unique=True),
Column('title', types.UnicodeText),
Expand All @@ -53,7 +53,7 @@

class Package(vdm.sqlalchemy.RevisionedObjectMixin,
vdm.sqlalchemy.StatefulObjectMixin,
DomainObject):
domain_object.DomainObject):

text_search_fields = ['name', 'title']

Expand Down Expand Up @@ -248,7 +248,7 @@ def get_average_rating(self):
return total / len(self.ratings)

def as_dict(self, ref_package_by='name', ref_group_by='name'):
_dict = DomainObject.as_dict(self)
_dict = domain_object.DomainObject.as_dict(self)
# Set 'license' in _dict to cater for old clients.
# Todo: Remove from Version 2?
_dict['license'] = self.license.title if self.license else _dict.get('license_id', '')
Expand Down Expand Up @@ -554,7 +554,7 @@ def metadata_modified(self):
result = conn.execute(query).fetchone()

if result:
result_datetime = iso_date_to_datetime_for_sqlite(result[0])
result_datetime = _types.iso_date_to_datetime_for_sqlite(result[0])
timestamp_without_usecs = result_datetime.utctimetuple()
usecs = float(result_datetime.microsecond) / 1e6
# use timegm instead of mktime, because we don't want it localised
Expand Down
7 changes: 3 additions & 4 deletions ckan/model/package_extra.py
@@ -1,22 +1,21 @@
from meta import *
from types import make_uuid
import vdm.sqlalchemy

from core import *
from package import *
from types import JsonType
from ckan.model import extension
import domain_object
import types as _types

__all__ = ['PackageExtra', 'package_extra_table', 'PackageExtraRevision',
'extra_revision_table']

package_extra_table = Table('package_extra', metadata,
Column('id', UnicodeText, primary_key=True, default=make_uuid),
Column('id', UnicodeText, primary_key=True, default=_types.make_uuid),
# NB: only (package, key) pair is unique
Column('package_id', UnicodeText, ForeignKey('package.id')),
Column('key', UnicodeText),
Column('value', JsonType),
Column('value', _types.JsonType),
)

vdm.sqlalchemy.make_table_stateful(package_extra_table)
Expand Down
12 changes: 6 additions & 6 deletions ckan/model/tag.py
@@ -1,11 +1,11 @@
import sqlalchemy
import vdm.sqlalchemy

from types import make_uuid
from meta import *
from domain_object import DomainObject
from package import Package
from core import *
import types as _types
import domain_object
import vocabulary
import activity
import ckan
Expand All @@ -18,7 +18,7 @@
MIN_TAG_LENGTH = 2

tag_table = Table('tag', metadata,
Column('id', types.UnicodeText, primary_key=True, default=make_uuid),
Column('id', types.UnicodeText, primary_key=True, default=_types.make_uuid),
Column('name', types.Unicode(MAX_TAG_LENGTH), nullable=False),
Column('vocabulary_id',
types.Unicode(vocabulary.VOCABULARY_NAME_MAX_LENGTH),
Expand All @@ -27,7 +27,7 @@
)

package_tag_table = Table('package_tag', metadata,
Column('id', types.UnicodeText, primary_key=True, default=make_uuid),
Column('id', types.UnicodeText, primary_key=True, default=_types.make_uuid),
Column('package_id', types.UnicodeText, ForeignKey('package.id')),
Column('tag_id', types.UnicodeText, ForeignKey('tag.id')),
)
Expand All @@ -36,7 +36,7 @@
# TODO: this has a composite primary key ...
package_tag_revision_table = make_revisioned_table(package_tag_table)

class Tag(DomainObject):
class Tag(domain_object.DomainObject):
def __init__(self, name='', vocabulary_id=None):
self.name = name
self.vocabulary_id = vocabulary_id
Expand Down Expand Up @@ -186,7 +186,7 @@ def __repr__(self):

class PackageTag(vdm.sqlalchemy.RevisionedObjectMixin,
vdm.sqlalchemy.StatefulObjectMixin,
DomainObject):
domain_object.DomainObject):
def __init__(self, package=None, tag=None, state=None, **kwargs):
self.package = package
self.tag = tag
Expand Down
3 changes: 0 additions & 3 deletions ckan/model/term_translation.py
@@ -1,8 +1,5 @@
import sqlalchemy as sa
from meta import *
from core import *
from types import make_uuid
from datetime import datetime

__all__ = ['term_translation_table']

Expand Down

0 comments on commit d9d6a71

Please sign in to comment.