-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to export to Excel (no attribute 'xlsx') #8
Comments
I may have found the solution (source)1:
Because support for specific formats became opt-in since late 2019. Footnotes
|
I wanted to overwrite the dropdown list options so that I would not show editors unusable fields, but I tried to override
|
I tried installing tablib extras like I suggested (source).
Neither fixed the problem. It could still be my fault. Please assist. I propose that this repo document (at least summarize) the steps necessary to make Excel and YAML exports work. |
I will take some time to look at this soon. The main reason this fork exists is because one of our teams was using it in a project before it stopped being supported. They weren't ready to let it go, so I just went through and made sure all of the warnings/exceptions were addressed. I have some tools that can import/export xlsx and csv with openpyxl (and pyxlsb). I'm a little less familiar with tablib, but it looks like it might be useful for YAML export, although I think building a JSON export wouldn't be difficult, (I have excel to dicts, and dicts to excel converters, as well as to and from csv) and going from JSON to YAML isn't too bad either. |
Here's my quick fix for this - djangocms-forms/djangocms_forms/forms.py Line 355 in b2b282b I added **kwargs to a newly created init method. This allows you to pass in format_choices=() as a keyword arg. I also added an option you can put in your settings.py file to make it happen globally. DJANGOCMS_FORMS_FORMAT_CHOICES = (
("csv", _("CSV")),
("json", _("JSON")),
("yaml", _("YAML")),
("xlsx", _("Microsoft Excel")),
) I look for a tuple specifically, since kwargs.get() and getattr(settings,'VAR') will default to None. |
That should work! I'll try it out today. ReminderBranch/Diff: P.S. Thank you very much for having maintained this fork and fixing the bugs. I found no other such Django CMS plugin that lets Django CMS editor create forms (besides the broken upstream). Our primary CMS editor has many form requests, and it's far more efficient that she can build forms herself. |
@wesleyboar no problem. I'll keep it going as long as I can! |
I don't think the change worked. Maybe I'm doing something wrong. Did it work for you? I performed re- Added to
Changed
To
|
You are correct. Sorry about that. I had to setup a new test environment to dig further into the issue, and have a working version up in that branch. It takes away the new init method, and just uses an if statement at the top of the form class to check if the setting has been overridden in settings
I'm also in the process of pushing a new release that will support newer versions of django (<4) and includes this fix, as well as a fix for admin_static template tags, and the removal if the url import.
|
Hey, finally got to testing this. Thanks, it works. I tested a commit (ab38b22) after the fix. |
1. Only let users export with supported formats. 2. Update form version to rev. that supports this. Source: avryhof/djangocms-forms#8
Great! Glad to help. |
1. Only let users export with supported formats. 2. Update form version to rev. that supports this. Source: avryhof/djangocms-forms#8
* feat(tup-230): working form plugin * docs(tup-230): clarify form submission failure * feat(tup-230): use jquery version that has ajax The django-forms(-maintained) plugin expects jquery with ajax features. Our CMS was using a slim build of jQuery. The size difference is 17KB, which I consider negligible. * feat(tup-230): make spam protection available * feat(tup-230): e-mail template (when e-mail works) * docs(tup-230): tweak comment in settings * fix(tup-230): comments & semantic html in template * fix(tup-230): revert and make some html changes - less changes form original - sometimes the original html was better for styling * feat(tup-230): style form (no design review yet) Also, no button styling yet. * chore(tup-230): rename css file, add pointer file Pointer file mimics what I do for blog CSS, which is also in source. * chore(settings): tup-308, how to set captcha keys Ref: TACC/Core-Portal-Deployments@48e6e9c * noop(settings): tup-308, add new line * fix(settings): tup-308, use new form css from #500 * fix(settings): tup-308, new form templates by #500 Not a straight clone of #500. I added a little CSS and a small document to avoid cloning one template. See: - default.html.md - django.cms.forms.css * noop(settings): tup-308, form settings from #501 * fix(settings): tup-308, css changes from #501 * fix(settings): tup-308, "*" to "(required)" I use a different solution than #501. In #501, markup was changed to "(require)": https://github.com/TACC/Core-CMS/blob/5f63bdf/taccsite_cms/templates/djangocms_forms/form_template/default.html#L27 But here, I do not edit the markup, so no need to clone template: https://github.com/TACC/Core-CMS/blob/8a46a21/taccsite_cms/templates/djangocms_forms/form_template/default.html.md * fix(css): tup-308, small form style issues - bigger gap between single checkbox and input - add gap between multiple checkbox and input - align multiple checkbox and input - simpler, less specific checkbox label selector - remove undesired label margin* * This style was ineffectual—good—in 3.6, but "fixed"—bad—when ported. * fix(css): tup-308, small form style issues - limit which help text gets margin - remove ineffectual, unnecessary margin removal - bigger gap between single checkbox and input - align single checkbox and input - add gap between multiple checkbox and input - align multiple checkbox and input - remove label margin on last of multiple checkboxes/radios - simpler, less specific checkbox label selector - remove undesired label margin* * This style was ineffectual—good—in 3.6, but "fixed"—bad—when ported. * docs(styles): typo fix for KSS comment * fix(form): tup-308 only working export formats 1. Only let users export with supported formats. 2. Update form version to rev. that supports this. Source: avryhof/djangocms-forms#8 * fix(form): delete unnecessary cloned template * fix(form): tup-308, clean up templates - remove unedited cloned template - update commit in a comment * fix(form): tup-308, move form export settings * fix(form): tup-308, remove unused file I forgot to delete this file earlier. * fix(form): tup-308, remove redundant script The removal happens form a merged PR on the plugin: avryhof/djangocms-forms#12 * chore(core-styles): v0.7.0-beta * fix(taccsite_custom): get main relevant PRs merged * docs(form): no commented settings
Similar to mishbahr#88, I am unable to export to excel (nor yaml).
The error is an AttributeError,
'Dataset' object has no attribute 'xlsx'
.Traceback
The text was updated successfully, but these errors were encountered: