Skip to content
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

Error: 'NoneType' object has no attribute 'set' when attempting to Commit #8464

Closed
2 tasks done
GregWoods opened this issue Dec 9, 2022 · 1 comment
Closed
2 tasks done
Assignees
Labels
bug Something is broken.
Milestone

Comments

@GregWoods
Copy link

GregWoods commented Dec 9, 2022

Describe the issue

I am testing using weblate using xliff files in a monolingual way.

My base file "en.xlf" contains only one item

<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
  <file original="" source-language="en" target-language="fr" datatype="plaintext">
    <body>

      <trans-unit id="hi" approved="yes">
        <source>Hello World</source>
      </trans-unit>

    </body>
  </file>
</xliff>

My translated file is simply

<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
  <file original="" source-language="en" target-language="fr" datatype="plaintext">
    <body>

      <trans-unit id="hi">
        <target>Bonjour le monde</target>
      </trans-unit>

    </body>
  </file>
</xliff>

Problem
I can manually add a translation in weblate but committing it using the repository tools causes the error:
'NoneType' object has no attribute 'set'

I already tried

  • I've read and searched the documentation.
  • I've searched for similar issues in this repository.

Steps to reproduce the behavior

with the setup as described above...

Select project
select component
select language French
Click "Translate"
The "hi" has a missing French translation
I manually add it
Click one of the Save buttons
All is Ok so far

Go to the project home page
Manage
Repository Maintenance
I see "1 Pending changes not yet committed to the Weblate repository"
Click "Commit"

Expected behavior

Change should successfully be committed to the repository

Screenshots

No response

Exception traceback

Environment:


Request Method: POST
Request URL: https://translation.visionslive.com/commit/translation-tests-greg/test3/

Django Version: 4.1.3
Python Version: 3.11.0
Installed Applications:
['customize',
 'weblate.addons',
 'weblate.auth',
 'weblate.checks',
 'weblate.formats',
 'weblate.glossary',
 'weblate.machinery',
 'weblate.trans',
 'weblate.lang',
 'weblate_language_data',
 'weblate.memory',
 'weblate.screenshots',
 'weblate.fonts',
 'weblate.accounts',
 'weblate.configuration',
 'weblate.utils',
 'weblate.vcs',
 'weblate.wladmin',
 'weblate.metrics',
 'weblate',
 'weblate.gitexport',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin.apps.SimpleAdminConfig',
 'django.contrib.admindocs',
 'django.contrib.sitemaps',
 'django.contrib.humanize',
 'social_django',
 'crispy_forms',
 'compressor',
 'rest_framework',
 'rest_framework.authtoken',
 'django_filters']
Installed Middleware:
['weblate.middleware.RedirectMiddleware',
 'weblate.middleware.ProxyMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'weblate.accounts.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'social_django.middleware.SocialAuthExceptionMiddleware',
 'weblate.accounts.middleware.RequireLoginMiddleware',
 'weblate.api.middleware.ThrottlingMiddleware',
 'weblate.middleware.SecurityMiddleware']



Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.11/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.11/site-packages/django/views/decorators/http.py", line 43, in inner
    return func(request, *args, **kwargs)
  File "/usr/local/lib/python3.11/site-packages/weblate/trans/views/git.py", line 138, in commit_component
    return perform_commit(request, obj)
  File "/usr/local/lib/python3.11/site-packages/weblate/trans/views/git.py", line 54, in perform_commit
    return execute_locked(
  File "/usr/local/lib/python3.11/site-packages/weblate/trans/views/git.py", line 35, in execute_locked
    result = call(*args, **kwargs)
  File "/usr/local/lib/python3.11/site-packages/weblate/trans/models/component.py", line 169, in on_link_wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.11/site-packages/weblate/trans/models/component.py", line 1619, in commit_pending
    translation._commit_pending(reason, user)
  File "/usr/local/lib/python3.11/contextlib.py", line 81, in inner
    return func(*args, **kwds)
  File "/usr/local/lib/python3.11/site-packages/weblate/trans/models/translation.py", line 633, in _commit_pending
    self.update_units(units, store, author_name, author.id)
  File "/usr/local/lib/python3.11/site-packages/weblate/trans/models/translation.py", line 762, in update_units
    pounit.set_state(unit.state)
  File "/usr/local/lib/python3.11/site-packages/weblate/formats/ttkit.py", line 685, in set_state
    self.xliff_node.set("state", "translated")

Exception Type: AttributeError at /commit/translation-tests-greg/test3/
Exception Value: 'NoneType' object has no attribute 'set'

How do you run Weblate?

Docker container

Weblate versions

  • Weblate: 4.14.2
  • Django: 4.1.3
  • siphashc: 2.1
  • translate-toolkit: 3.7.4
  • lxml: 4.9.1
  • Pillow: 9.3.0
  • bleach: 5.0.1
  • python-dateutil: 2.8.2
  • social-auth-core: 4.3.0
  • social-auth-app-django: 5.0.0
  • django-crispy-forms: 1.14.0
  • oauthlib: 3.2.2
  • django-compressor: 4.1
  • djangorestframework: 3.14.0
  • django-filter: 22.1
  • django-appconf: 1.0.5
  • user-agents: 2.2.0
  • filelock: 3.8.0
  • rapidfuzz: 2.13.1
  • openpyxl: 3.0.10
  • celery: 5.2.7
  • kombu: 5.2.4
  • translation-finder: 2.14
  • weblate-language-data: 2022.8
  • html2text: 2020.1.16
  • pycairo: 1.21.0
  • pygobject: 3.42.2
  • diff-match-patch: 20200713
  • requests: 2.28.1
  • django-redis: 5.2.0
  • hiredis: 2.0.0
  • sentry_sdk: 1.10.1
  • Cython: 0.29.32
  • misaka: 2.1.1
  • GitPython: 3.1.29
  • borgbackup: 1.2.2
  • pyparsing: 3.0.9
  • pyahocorasick: 1.4.4
  • python-redis-lock: 4.0.0
  • charset-normalizer: 2.1.1
  • Python: 3.11.0
  • Git: 2.30.2
  • psycopg2: 2.9.5
  • psycopg2-binary: 2.9.5
  • phply: 1.2.5
  • ruamel.yaml: 0.17.21
  • tesserocr: 2.5.2
  • boto3: 1.26.3
  • zeep: 4.2.0
  • aeidon: 1.11
  • iniparse: 0.5
  • mysqlclient: 2.1.1
  • Mercurial: 6.2.3
  • git-svn: 2.30.2
  • git-review: 2.3.1
  • Redis server: 6.2.7
  • PostgreSQL server: 15.1
  • Database backends: django.db.backends.postgresql
  • Cache backends: default:RedisCache, avatar:FileBasedCache
  • Email setup: django.core.mail.backends.smtp.EmailBackend: mail.authsmtp.com
  • OS encoding: filesystem=utf-8, default=utf-8
  • Celery: redis://cache:6379/1, redis://cache:6379/1, regular
  • Platform: Linux 5.4.0-132-generic (x86_64)

Weblate deploy checks

WARNINGS:
?: (security.W004) You have not set a value for the SECURE_HSTS_SECONDS setting. If your entire site is served only over SSL, you may want to consider setting a value and enabling HTTP Strict Transport Security. Be sure to read the documentation first; enabling HSTS carelessly can cause serious, irreversible problems.
?: (security.W008) Your SECURE_SSL_REDIRECT setting is not set to True. Unless your site should be available over both SSL and non-SSL connections, you may want to either set this setting True or configure a load balancer or reverse-proxy server to redirect all connections to HTTPS.
?: (security.W012) SESSION_COOKIE_SECURE is not set to True. Using a secure-only session cookie makes it more difficult for network traffic sniffers to hijack user sessions.
?: (security.W018) You should not have DEBUG set to True in deployment.

INFOS:
?: (weblate.I021) Error collection is not set up, it is highly recommended for production use
        HINT: https://docs.weblate.org/en/weblate-4.14.2/admin/install.html#collecting-errors
?: (weblate.I028) Backups are not configured, it is highly recommended for production use
        HINT: https://docs.weblate.org/en/weblate-4.14.2/admin/backup.html

System check identified 6 issues (1 silenced).

Additional context

No response

@nijel nijel self-assigned this Dec 12, 2022
@nijel nijel added the bug Something is broken. label Dec 12, 2022
@nijel nijel closed this as completed in 033f32b Dec 12, 2022
@nijel nijel added this to the 4.15 milestone Dec 12, 2022
@github-actions
Copy link

Thank you for your report; the issue you have reported has just been fixed.

  • In case you see a problem with the fix, please comment on this issue.
  • In case you see a similar problem, please open a separate issue.
  • If you are happy with the outcome, don’t hesitate to support Weblate by making a donation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something is broken.
Projects
None yet
Development

No branches or pull requests

2 participants