Coverage for ckanext/udc/licenses/model.py: 80%
20 statements
« prev ^ index » next coverage.py v7.7.1, created at 2026-01-19 23:48 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2026-01-19 23:48 +0000
1from sqlalchemy import Column, MetaData, ForeignKey, func
2from sqlalchemy import types
3from sqlalchemy.ext.declarative import declarative_base
5import ckan.model as model
7log = __import__('logging').getLogger(__name__)
9Base = declarative_base()
11class CustomLicense(Base):
12 """
13 A custom license that can be added by users.
14 """
15 __tablename__ = 'custom_license'
17 id = Column(types.UnicodeText, primary_key=True)
18 title = Column(types.UnicodeText)
19 url = Column(types.UnicodeText)
20 user_id = Column(types.UnicodeText, ForeignKey(model.User.id), nullable=False)
23 @classmethod
24 def get(cls, id):
25 return model.Session.query(cls).filter(cls.id == id).first()
27 def as_dict(self):
28 d = {
29 'id': self.id,
30 'title': self.title,
31 'url': self.url,
32 'user_id': self.user_id
33 }
35 return d
37def init_tables():
38 Base.metadata.create_all(model.meta.engine)