• 
      

    Custom Admin Emoji Panel (Reviewboard)

    Review Request #11868 — Created Oct. 23, 2021 and updated

    Information

    Review Board
    release-4.0.x

    Reviewers

    Adds a page to the admin panel which allows an admin to upload a custom emoji
    by uploading a name, shortcode, description, and image. These fields are
    editable whenever the user re-vists the page. The emoji data is loaded from,
    and saved into SiteConfiguration, while the image data is loaded from and
    saved to DefaultStorage.

    Further work that needs to be done:
    * Adding labels to the form fields, and removing the extra "name" field at
    the very top of the form.

    Summary document in Notion: https://www.notion.so/reviewboard/Custom-Emojis-Progress-6644ec34f5a84c6ab957ea11ae2b7259

    Unit testing: Unit test suites for class Emoji_Widget
    Local testing: making sure the app runs property with print() statements.

    Summary ID Author
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Remove unnecessary header, add placeholder text.
    e55c5e516cedc699b35eada5bb18e4d650d4f297 mxiuwang
    Emoji_Widget tests.
    b46c04ba107ceec5ffec6d7a7258703de817add8 mxiuwang
    Revert accidental change to dependencies.py and Akim's PR.
    467477d73e398105c37b277e38f7624d953ed4bd mxiuwang
    Fix automatically-raised whitespace issues.
    b643c33722c7a938a49575a6e269dc0173e0921b mxiuwang
    Fix automatically-raised whitespace issues.
    a3ab71224844e5baccf8d213df194a958f1bdeec mxiuwang
    Fix suggestions.
    6bc01da49f2170d7ac7f726c9b39da5fab7047f3 mxiuwang
    Render custom emoji image preview.
    13afc7cfdaa8753f295ddf23fb6571d03f9e2869 mxiuwang
    Fix flake8 suggestions.
    e1e12a55fa4f7ddd5981dc6b4b921e1ddf8e32c8 mxiuwang
    Description From Last Updated

    F401 'django.utils.translation.ugettext' imported but unused

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E501 line too long (83 > 79 characters)

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    F403 'from .models import *' used; unable to detect undefined names

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E226 missing whitespace around arithmetic operator

    reviewbotreviewbot

    E226 missing whitespace around arithmetic operator

    reviewbotreviewbot

    E225 missing whitespace around operator

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    F841 local variable 'display_emoji' is assigned to but never used

    reviewbotreviewbot

    F405 'CustomEmojis' may be undefined, or defined from star imports: .models

    reviewbotreviewbot

    E251 unexpected spaces around keyword / parameter equals

    reviewbotreviewbot

    E251 unexpected spaces around keyword / parameter equals

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    F811 redefinition of unused 'ListEditWidget' from line 5

    reviewbotreviewbot

    F811 redefinition of unused 'forms' from line 3

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E123 closing bracket does not match indentation of opening bracket's line

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    E501 line too long (80 > 79 characters)

    reviewbotreviewbot

    E501 line too long (90 > 79 characters)

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    Col: 36 Expected ')' and instead saw 'this'.

    reviewbotreviewbot

    F811 redefinition of unused 'ListEditWidget' from line 5

    reviewbotreviewbot

    F811 redefinition of unused 'forms' from line 3

    reviewbotreviewbot

    F401 'django.forms' imported but unused

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E123 closing bracket does not match indentation of opening bracket's line

    reviewbotreviewbot

    E501 line too long (80 > 79 characters)

    reviewbotreviewbot

    E501 line too long (90 > 79 characters)

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    E301 expected 1 blank line, found 0

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E501 line too long (104 > 79 characters)

    reviewbotreviewbot

    E501 line too long (81 > 79 characters)

    reviewbotreviewbot

    E501 line too long (87 > 79 characters)

    reviewbotreviewbot

    E501 line too long (86 > 79 characters)

    reviewbotreviewbot

    E501 line too long (91 > 79 characters)

    reviewbotreviewbot

    E501 line too long (90 > 79 characters)

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    E501 line too long (97 > 79 characters)

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E302 expected 2 blank lines, found 0

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E123 closing bracket does not match indentation of opening bracket's line

    reviewbotreviewbot

    E501 line too long (80 > 79 characters)

    reviewbotreviewbot

    E501 line too long (90 > 79 characters)

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    F811 redefinition of unused 'ListEditWidget' from line 4

    reviewbotreviewbot

    F401 'django.forms' imported but unused

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    E301 expected 1 blank line, found 0

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E501 line too long (104 > 79 characters)

    reviewbotreviewbot

    E501 line too long (81 > 79 characters)

    reviewbotreviewbot

    E501 line too long (87 > 79 characters)

    reviewbotreviewbot

    E501 line too long (86 > 79 characters)

    reviewbotreviewbot

    E501 line too long (91 > 79 characters)

    reviewbotreviewbot

    E501 line too long (90 > 79 characters)

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    E501 line too long (97 > 79 characters)

    reviewbotreviewbot

    F401 'django.core.files.storage.get_storage_class' imported but unused

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E722 do not use bare 'except'

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    E302 expected 2 blank lines, found 0

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E231 missing whitespace after ':'

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E123 closing bracket does not match indentation of opening bracket's line

    reviewbotreviewbot

    E501 line too long (80 > 79 characters)

    reviewbotreviewbot

    E501 line too long (90 > 79 characters)

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    F811 redefinition of unused 'ListEditWidget' from line 4

    reviewbotreviewbot

    F401 'django.forms' imported but unused

    reviewbotreviewbot

    E501 line too long (87 > 79 characters)

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E261 at least two spaces before inline comment

    reviewbotreviewbot

    E501 line too long (120 > 79 characters)

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    W293 blank line contains whitespace

    reviewbotreviewbot

    E301 expected 1 blank line, found 0

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E302 expected 2 blank lines, found 1

    reviewbotreviewbot

    E501 line too long (104 > 79 characters)

    reviewbotreviewbot

    E501 line too long (81 > 79 characters)

    reviewbotreviewbot

    F841 local variable 'message' is assigned to but never used

    reviewbotreviewbot

    E126 continuation line over-indented for hanging indent

    reviewbotreviewbot

    E126 continuation line over-indented for hanging indent

    reviewbotreviewbot

    W291 trailing whitespace

    reviewbotreviewbot

    E502 the backslash is redundant between brackets

    reviewbotreviewbot

    E128 continuation line under-indented for visual indent

    reviewbotreviewbot

    E502 the backslash is redundant between brackets

    reviewbotreviewbot

    E131 continuation line unaligned for hanging indent

    reviewbotreviewbot

    E501 line too long (85 > 79 characters)

    reviewbotreviewbot

    E501 line too long (87 > 79 characters)

    reviewbotreviewbot

    E501 line too long (86 > 79 characters)

    reviewbotreviewbot

    E501 line too long (91 > 79 characters)

    reviewbotreviewbot

    E501 line too long (90 > 79 characters)

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    W292 no newline at end of file

    reviewbotreviewbot

    E231 missing whitespace after ','

    reviewbotreviewbot

    E501 line too long (97 > 79 characters)

    reviewbotreviewbot
    Checks run (1 failed, 1 succeeded)
    flake8 failed.
    JSHint passed.

    flake8

    mxwang
    mxwang
    Review request changed
    Commits:
    Summary ID Author
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang

    Checks run (2 failed)

    flake8 failed.
    JSHint failed.

    flake8

    JSHint

    mxwang
    mxwang
    Review request changed
    Commits:
    Summary ID Author
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Remove unnecessary header, add placeholder text.
    e55c5e516cedc699b35eada5bb18e4d650d4f297 mxiuwang
    Emoji_Widget tests.
    b46c04ba107ceec5ffec6d7a7258703de817add8 mxiuwang
    Revert accidental change to dependencies.py and Akim's PR.
    467477d73e398105c37b277e38f7624d953ed4bd mxiuwang
    Fix automatically-raised whitespace issues.
    b643c33722c7a938a49575a6e269dc0173e0921b mxiuwang
    Fix automatically-raised whitespace issues.
    a3ab71224844e5baccf8d213df194a958f1bdeec mxiuwang

    Checks run (1 failed, 1 succeeded)

    flake8 failed.
    JSHint passed.

    flake8

    mxwang
    mxwang
    Review request changed
    Commits:
    Summary ID Author
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Remove unnecessary header, add placeholder text.
    e55c5e516cedc699b35eada5bb18e4d650d4f297 mxiuwang
    Emoji_Widget tests.
    b46c04ba107ceec5ffec6d7a7258703de817add8 mxiuwang
    Revert accidental change to dependencies.py and Akim's PR.
    467477d73e398105c37b277e38f7624d953ed4bd mxiuwang
    Fix automatically-raised whitespace issues.
    b643c33722c7a938a49575a6e269dc0173e0921b mxiuwang
    Fix automatically-raised whitespace issues.
    a3ab71224844e5baccf8d213df194a958f1bdeec mxiuwang
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Remove unnecessary header, add placeholder text.
    e55c5e516cedc699b35eada5bb18e4d650d4f297 mxiuwang
    Emoji_Widget tests.
    b46c04ba107ceec5ffec6d7a7258703de817add8 mxiuwang
    Revert accidental change to dependencies.py and Akim's PR.
    467477d73e398105c37b277e38f7624d953ed4bd mxiuwang
    Fix automatically-raised whitespace issues.
    b643c33722c7a938a49575a6e269dc0173e0921b mxiuwang
    Fix automatically-raised whitespace issues.
    a3ab71224844e5baccf8d213df194a958f1bdeec mxiuwang
    Fix suggestions.
    6bc01da49f2170d7ac7f726c9b39da5fab7047f3 mxiuwang

    Checks run (1 failed, 1 succeeded)

    flake8 failed.
    JSHint passed.

    flake8

    mxwang
    mxwang
    Review request changed
    Commits:
    Summary ID Author
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Remove unnecessary header, add placeholder text.
    e55c5e516cedc699b35eada5bb18e4d650d4f297 mxiuwang
    Emoji_Widget tests.
    b46c04ba107ceec5ffec6d7a7258703de817add8 mxiuwang
    Revert accidental change to dependencies.py and Akim's PR.
    467477d73e398105c37b277e38f7624d953ed4bd mxiuwang
    Fix automatically-raised whitespace issues.
    b643c33722c7a938a49575a6e269dc0173e0921b mxiuwang
    Fix automatically-raised whitespace issues.
    a3ab71224844e5baccf8d213df194a958f1bdeec mxiuwang
    Fix suggestions.
    6bc01da49f2170d7ac7f726c9b39da5fab7047f3 mxiuwang
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Remove unnecessary header, add placeholder text.
    e55c5e516cedc699b35eada5bb18e4d650d4f297 mxiuwang
    Emoji_Widget tests.
    b46c04ba107ceec5ffec6d7a7258703de817add8 mxiuwang
    Revert accidental change to dependencies.py and Akim's PR.
    467477d73e398105c37b277e38f7624d953ed4bd mxiuwang
    Fix automatically-raised whitespace issues.
    b643c33722c7a938a49575a6e269dc0173e0921b mxiuwang
    Fix automatically-raised whitespace issues.
    a3ab71224844e5baccf8d213df194a958f1bdeec mxiuwang
    Fix suggestions.
    6bc01da49f2170d7ac7f726c9b39da5fab7047f3 mxiuwang
    Render custom emoji image preview.
    13afc7cfdaa8753f295ddf23fb6571d03f9e2869 mxiuwang

    Checks run (1 failed, 1 succeeded)

    flake8 failed.
    JSHint passed.

    flake8

    mxwang
    mxwang
    Review request changed
    Commits:
    Summary ID Author
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Remove unnecessary header, add placeholder text.
    e55c5e516cedc699b35eada5bb18e4d650d4f297 mxiuwang
    Emoji_Widget tests.
    b46c04ba107ceec5ffec6d7a7258703de817add8 mxiuwang
    Revert accidental change to dependencies.py and Akim's PR.
    467477d73e398105c37b277e38f7624d953ed4bd mxiuwang
    Fix automatically-raised whitespace issues.
    b643c33722c7a938a49575a6e269dc0173e0921b mxiuwang
    Fix automatically-raised whitespace issues.
    a3ab71224844e5baccf8d213df194a958f1bdeec mxiuwang
    Fix suggestions.
    6bc01da49f2170d7ac7f726c9b39da5fab7047f3 mxiuwang
    Render custom emoji image preview.
    13afc7cfdaa8753f295ddf23fb6571d03f9e2869 mxiuwang
    Upload Emojis wip.
    81d9db02ab1196cf653dc46a1bc7789d57123591 mxiuwang
    Upload Emojis using Models model, soon to be changed to Forms model.
    441e0104edac5f50a79c1679f9fda40e5f2cf126 mxiuwang
    [WIP] use forms to upload images
    146aa88a4d69d36aff0c6a7a16c9bd56a98ec4f2 mxiuwang
    [WIP] load() and save() functions.
    bfa9548136e4a6ebe929a4f2f4a25d66e49abc48 mxiuwang
    [WIP] Emoji working, trying to validate save().
    d10c4cd84e9463db47c12985406532600b42d944 mxiuwang
    WIP save() function in emoji_settings,py
    58b772e54a253940df0addb7a3ca676bdb0b20fc mxiuwang
    save runs but does not fetch data from forms.
    395bd2aeb607fb12ea01454a7f45daaf9d86eb51 mxiuwang
    [WIP] cannot fetch data from forms.
    44ea86374597f452717b9555ed843122b81c7a43 mxiuwang
    [WIP] Add ListEditDictionaryField for parsing input.
    aeb6ddd87da468d8e8e3ed6af34e825f08a0d8ec mxiuwang
    ListEditDictionaryField working.
    b04ab1d482403d74c068d2357f5adba80412d4f1 mxiuwang
    save working except images.
    05e73763cac1902c79b80131eacc8a579153e1ac mxiuwang
    load() function loads data (except images.
    aff938a30ff7e469d23ccc50fac55da63b84482e mxiuwang
    Images saved to DefaultStorage, not yet rendered on load().
    5aea766a9f2ac3c496a09a80727fd476aef95b71 mxiuwang
    [WIP] Rendering Images.
    413a6479e991bef5aadbc49bd50d8c9185994ff9 mxiuwang
    [WIP] Render image previews.
    deb9c6a9374fe41adc0fa2393e88c3ec7caa6acd mxiuwang
    Add docstring, code cleanup.
    a76d6448038388bfff67870a2ca170cb385a990b mxiuwang
    Undo accidental pull patch from Akim.
    1360feaa66d3716b0d9a696363c9df8fd21a0bd5 mxiuwang
    Remove unnecessary header, add placeholder text.
    e55c5e516cedc699b35eada5bb18e4d650d4f297 mxiuwang
    Emoji_Widget tests.
    b46c04ba107ceec5ffec6d7a7258703de817add8 mxiuwang
    Revert accidental change to dependencies.py and Akim's PR.
    467477d73e398105c37b277e38f7624d953ed4bd mxiuwang
    Fix automatically-raised whitespace issues.
    b643c33722c7a938a49575a6e269dc0173e0921b mxiuwang
    Fix automatically-raised whitespace issues.
    a3ab71224844e5baccf8d213df194a958f1bdeec mxiuwang
    Fix suggestions.
    6bc01da49f2170d7ac7f726c9b39da5fab7047f3 mxiuwang
    Render custom emoji image preview.
    13afc7cfdaa8753f295ddf23fb6571d03f9e2869 mxiuwang
    Fix flake8 suggestions.
    e1e12a55fa4f7ddd5981dc6b4b921e1ddf8e32c8 mxiuwang

    Checks run (1 failed, 1 succeeded)

    flake8 failed.
    JSHint passed.

    flake8