diff --git a/boards/abstracts/attachment_alias.py b/boards/abstracts/sticker_factory.py rename from boards/abstracts/attachment_alias.py rename to boards/abstracts/sticker_factory.py --- a/boards/abstracts/attachment_alias.py +++ b/boards/abstracts/sticker_factory.py @@ -2,12 +2,12 @@ from boards.abstracts.settingsmanager im from boards.models import Attachment -class AttachmentAlias: +class StickerFactory: def get_image(self, alias): pass -class SessionAttachmentAlias(AttachmentAlias): +class SessionStickerFactory(StickerFactory): def __init__(self, session): self.session = session @@ -16,14 +16,17 @@ class SessionAttachmentAlias(AttachmentA return settings_manager.get_attachment_by_alias(alias) -class ModelAttachmentAlias(AttachmentAlias): +class ModelStickerFactory(StickerFactory): def get_image(self, alias): return Attachment.objects.get_by_alias(alias) -def get_image_by_alias(alias, session): - image = SessionAttachmentAlias(session).get_image(alias)\ - or ModelAttachmentAlias().get_image(alias) +def get_attachment_by_alias(alias, session): + """Gets attachment from a source (local or server/global) using an alias.""" + + factories = [SessionStickerFactory(session), ModelStickerFactory()] + for factory in factories: + image = factory.get_image(alias) - if image is not None: - return image + if image is not None: + return image diff --git a/boards/admin.py b/boards/admin.py --- a/boards/admin.py +++ b/boards/admin.py @@ -1,4 +1,4 @@ -from boards.abstracts.attachment_alias import AttachmentAlias +from boards.abstracts.sticker_factory import StickerFactory from boards.models.attachment import FILE_TYPES_IMAGE, AttachmentSticker from django.contrib import admin from django.utils.translation import ugettext_lazy as _ diff --git a/boards/forms/__init__.py b/boards/forms/__init__.py --- a/boards/forms/__init__.py +++ b/boards/forms/__init__.py @@ -18,7 +18,7 @@ from django.core.cache import cache import boards.settings as board_settings import neboard from boards import utils -from boards.abstracts.attachment_alias import get_image_by_alias +from boards.abstracts.sticker_factory import get_attachment_by_alias from boards.abstracts.settingsmanager import get_settings_manager from boards.forms.fields import UrlFileField from boards.mdx_neboard import formatters @@ -360,7 +360,7 @@ class PostForm(NeboardForm): return url try: - image = get_image_by_alias(url, self.session) + image = get_attachment_by_alias(url, self.session) if image is not None: if 'stickers' not in self.cleaned_data: self.cleaned_data['stickers'] = [] diff --git a/boards/locale/ru/LC_MESSAGES/djangojs.mo b/boards/locale/ru/LC_MESSAGES/djangojs.mo index c48b521be23655a1d2e8f4414e48496ab3389f07..e8586b93cc4d1639441013114c53e30ed227d78f GIT binary patch literal 1273 zc${rg-EI>{7@d~1rEWnGZYy;n)TjuJ*$qKSH*uOJ-cSoWwrmGPFDfne#96R+teG`x zRW2Y%EeIq;MOF2Np9erPfsj8D`T(so`vN=(7d_*(720H^Z_mt`bI$jT<+sB_zZ0y_ zP+y=T)KS#mBw0s3NX|!rM}Wus=W*aLa2}WfUIHEl*898y9s>RX{2chO?|%whL#?7L zoR<#}at!z<@Jrw`U>f*OpMM7&HFFFlI5CvW`2#Qu{24e2{0oRk@)6m)5J5iaztOA@ zQ3p}5^k)CK&wpw@ZoN*MqUJZLih|lzF3Fr|wL4J|HfTv)OsCT%+i5q0njdjR758Or zndCw!1_m1XEl%>nuft>XC7~i3iij?WPFN=u9-154;!61qZWI+RuffQr6morC@&UPA#RfR)S zrDB!MN$y85u`C|o&@szC!>n(ZHBRkGXMEzMb=tBZWMzIWP`kQIo?B*xBFnn;yP{Lb zo&3JI;HC1uida?pp=$b(kPe++%;)KXTkz<#S8#LrSvQ+4dzH!zq+z3j2e2ylTMo^; z3+EQi$kX}!Y%@p;+1S-!)IzS{?Y_@WTd6q_Mm$8jpV|;a{Kx22yXgnv6s;}$Qt>FW zSe<8+yE-%05|_*iYr_2C4xPLlM5$7(>(tG}Z}tYp-PNml zBVLK`QN0af3&eJOPrr`u>P;Hoj92sq$hG(e(NA<2#INy#cxCX%(~sfVh;QmGs$a&p zkhk5_cj4R7t3>~X_%;2~w9so*zefBzs4jLJAl`4FyF~win-}p7B(0m2UW=zl!ldyX z1SKv&KWh`whTS3h5t81R6vV@d=>PiS`@OVB@oi*0A4p8!)uj6f!Nq#dVp3iW+U-ln T_xD$ClK=Nbz}`{zsy4~L)_K{X diff --git a/boards/locale/ru/LC_MESSAGES/djangojs.po b/boards/locale/ru/LC_MESSAGES/djangojs.po --- a/boards/locale/ru/LC_MESSAGES/djangojs.po +++ b/boards/locale/ru/LC_MESSAGES/djangojs.po @@ -61,3 +61,7 @@ msgstr "Поиск дубликатов" msgid "Add local sticker" msgstr "Добавить локальный стикер" + +msgid "Input sticker name" +msgstr "Введите название стикера" + diff --git a/boards/locale/uk/LC_MESSAGES/djangojs.mo b/boards/locale/uk/LC_MESSAGES/djangojs.mo index 969e75f0458297132ae18f0b268270a157c673e8..0d020b9906614dee3d581152f2549d428443a584 GIT binary patch literal 1352 zc$}4z&u<$=6vu~BewiO?dj-LZ5LK%(?rv&C*w}5Cc+*Q`Wozbi# zh*uG?q`kj9y?@Po+;*F~QOoa=ii6fyLb8>p*B`_|*r8f&N zGPP=xuSns?F!3S=aA?u8KjPLW+{%%?CETVH7`^4Rm_{x4^`KXBk9oUdbvz%ZpEX#S8+?_i*B)4_Zp4!kcOQB2H;KM_Z%v_ zYnRqd%lUHoVmHV}vNPA9)k>-2&F8bTR%Rs%V-e!HZ~73#;_LWqzv~C#GPO2*sYF~@ zZ?5vCxz4n8T}bYQt;qb~4lR8V#F<)mApI_1jbu+b6!z1jDx6!U$+mDR{J^#f1)ENu zB(t>^3bsub$RZ~_pD!%VQu#v8Y*UAow=KGPb7FzUIt`Bv&*JIj4Aa~CQ19wtvZ7S5)oZN!^TkJ;3on#y7Er{;T{)GBReVE)$ z?&znacY%i}X8gmn&WP#n^+=DA+A&VTGeiB@l={n4ddTz-$czvN=xwMU!E}KAz1bu1 z?4a{Q{WIF0=1jRUp`NL_hpf3D|Eqk6R&Ha|eRTNeFzFi)(ndz+o7P2HGteU=Tp-h4 s`YY_hvT0s@h6nI62D_`r3k>^1{m_gu@BP1BCR