2013-10-29 37 views
3

雖然調查ConflictErrorsee this previous question)我看到了很多persistent.mapping.PersistentMapping衝突。plone.scale註釋臃腫與(無用?)秤

看着一個特定的一個,它竟然是一個PersistentMapping爲plone.scale

原來,只有一個圖像的隨機對象上有鍵,難怪爲什麼它得到一個衝突的錯誤...

保留此plone.scale註釋對象上的一些背景: - 靈巧內容類型 - 其行爲中的一個具有一個圖象場(plone.namedfile.field.NamedBlobImage

的代碼,看看它是如下:

啓動調試實例:./bin/instance debug

from ZODB.utils import p64 
OID = 0x568428 # got from zeo client logs 
mapping = app._p_jar[p64(OID)] 
len(mapping) # that returns 562 

神祕的是,只有4對持久映射鍵元組,而其他558只哈希值。

簡要看plone.scale.storage.AnnotationStorage.scale方法似乎暗示應該只有一對一的關係從元組和哈希值的持久性映射關鍵字。

進一步調查這些元素可以發現,如果您查看所有元素的widthheight屬性,則只有4種不同的組合(來自元組本身)。

由於每當修改時間更長時(見上面指出的比例方法),就會生成一個新比例,並且plone.namedfield.scaling.ImageScaling.modified將上下文用作修改的源,這意味着每次更新對象時都會生成一個新比例?

所以兩個問題從以前出現:真正使用

  • 我只有4個尺度的假設和其他558年老色衰的是真的嗎?

  • 在前面提供了一個yes,不應該清理它們嗎?

回答

3

也許你是對的,但肯定是正確的位置報告,這是https://dev.plone.org/newticket

+1

啊,但是這裏要求先看看你是否錯過了一些東西明顯是一個好主意。 –

+2

完成:https://dev.plone.org/ticket/13791 – gforcada

+1

我有時間準備測試和修補程序(實際上是一個班輪):https://github.com/plone/plone.scale/pull/ 3 – gforcada