Refactor model URL builder.
This commit is contained in:
parent
c5a9940e81
commit
2eabe72776
|
@ -35,6 +35,12 @@ reserved_name = ['root', 'admin', 'administrator', 'support', 'info',
|
|||
re_username = re.compile('^\w+$', re.U)
|
||||
re_full_name = re.compile('^([-.\'" ]|[^\W\d_])+$', re.U)
|
||||
|
||||
def item_url():
|
||||
return url_for('view.view_item',
|
||||
username=self.user.username,
|
||||
hashid=self.hashid)
|
||||
|
||||
|
||||
def user_exists(field, value):
|
||||
return session.query(exists().where(field == value)).scalar()
|
||||
|
||||
|
@ -168,36 +174,34 @@ class Item(TimeStampedModel):
|
|||
return
|
||||
return cls.query.get(item_id)
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
return url_for('view.view_item',
|
||||
username=self.user.username,
|
||||
hashid=self.hashid)
|
||||
|
||||
def version_url(self, version):
|
||||
return url_for('view.view_item',
|
||||
def view_url(self, endpoint, **kwargs):
|
||||
return url_for('view.' + endpoint,
|
||||
username=self.user.username,
|
||||
hashid=self.hashid,
|
||||
v=version)
|
||||
**kwargs)
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
return self.view_url('view_item')
|
||||
|
||||
def version_url(self, version):
|
||||
return self.view_url('view_item', v=version)
|
||||
|
||||
@property
|
||||
def history_url(self):
|
||||
return url_for('view.history', username=self.user.username, hashid=self.hashid)
|
||||
return self.view_url('history')
|
||||
|
||||
@property
|
||||
def external_url(self):
|
||||
return url_for('view.view_item',
|
||||
username=self.user.username,
|
||||
hashid=self.hashid,
|
||||
_external=True)
|
||||
return self.view_url('view_item', _external=True)
|
||||
|
||||
@property
|
||||
def edit_url(self):
|
||||
return url_for('view.edit_item', username=self.user.username, hashid=self.hashid)
|
||||
return self.view_url('edit_item')
|
||||
|
||||
@property
|
||||
def set_title_url(self):
|
||||
return url_for('view.set_title', username=self.user.username, hashid=self.hashid)
|
||||
return self.view_url('set_title')
|
||||
|
||||
def title(self, titles=None):
|
||||
if not titles:
|
||||
|
@ -249,6 +253,10 @@ class XanaDoc(Item):
|
|||
def snippet(self):
|
||||
return self.text
|
||||
|
||||
@property
|
||||
def xanaedit_url(self):
|
||||
return self.view_url('xanaedit')
|
||||
|
||||
class XanaLink(Item):
|
||||
__tablename__ = 'xanalink'
|
||||
__mapper_args__ = {'polymorphic_identity': 'xanalink'}
|
||||
|
|
Loading…
Reference in a new issue