Add 'enable_photo_add_remove_tag' config
This commit is contained in:
parent
efa930f4a8
commit
f222ae7182
3 changed files with 19 additions and 4 deletions
|
@ -151,6 +151,7 @@ DEFAULT_CONFIGURATION = {
|
|||
'enable_new_photo': True,
|
||||
'enable_new_tag': True,
|
||||
'enable_new_user': True,
|
||||
'enable_photo_add_remove_tag': True,
|
||||
|
||||
'min_tag_name_length': 1,
|
||||
'max_tag_name_length': 32,
|
||||
|
|
|
@ -438,6 +438,9 @@ class Photo(ObjectBase):
|
|||
return 'Photo:{id}'.format(id=self.id)
|
||||
|
||||
def add_tag(self, tag, *, commit=True):
|
||||
if not self.photodb.config['enable_photo_add_remove_tag']:
|
||||
raise exceptions.FeatureDisabled('photo.add_tag, photo.remove_tag')
|
||||
|
||||
tag = self.photodb.get_tag(tag)
|
||||
|
||||
existing = self.has_tag(tag, check_children=False)
|
||||
|
@ -707,6 +710,9 @@ class Photo(ObjectBase):
|
|||
self.photodb.commit()
|
||||
|
||||
def remove_tag(self, tag, *, commit=True):
|
||||
if not self.photodb.config['enable_photo_add_remove_tag']:
|
||||
raise exceptions.FeatureDisabled('photo.add_tag, photo.remove_tag')
|
||||
|
||||
tag = self.photodb.get_tag(tag)
|
||||
|
||||
self.photodb.log.debug('Removing tag {t} from photo {p}'.format(t=repr(tag), p=repr(self)))
|
||||
|
|
|
@ -671,10 +671,18 @@ def post_photo_add_remove_tag_core(photoid, tagname, add_or_remove):
|
|||
photo = P_photo(photoid, response_type='json')
|
||||
tag = P_tag(tagname, response_type='json')
|
||||
|
||||
try:
|
||||
if add_or_remove == 'add':
|
||||
photo.add_tag(tag)
|
||||
elif add_or_remove == 'remove':
|
||||
photo.remove_tag(tag)
|
||||
except exceptions.EtiquetteException as e:
|
||||
response = {
|
||||
'error_type': e.error_type,
|
||||
'error_message': e.error_message,
|
||||
}
|
||||
response = jsonify.make_json_response(response, status=400)
|
||||
flask.abort(response)
|
||||
|
||||
response = {'tagname': tag.name}
|
||||
return jsonify.make_json_response(response)
|
||||
|
|
Loading…
Reference in a new issue