コード例 #1
0
ファイル: forms.py プロジェクト: cloudratha/django-letsagree
 class Meta:
     model = models.Term
     fields = (
         "date_created",
         to_attribute("summary"),
         to_attribute("content"),
         "agree",
     )
コード例 #2
0
ファイル: models.py プロジェクト: UlmBlois/website
 def getter(self):
     return getattr(
         self,
         to_attribute(name),
     ) or getattr(
         self,
         # First language acts as fallback:
         to_attribute(name, settings.LANGUAGES[0][0]),
     )
コード例 #3
0
    def save(self, update_fields=None, **kwargs):
        dirty = self.get_dirty_fields()
        if not update_fields is None:
            dirty = {key: val for (key, val) in dirty.items()\
                    if key in update_fields}

        for langcode, _ in settings.LANGUAGES:
            title_field = to_attribute('title', langcode)
            slug_field = to_attribute('slug', langcode)
            if title_field in dirty and getattr(self, title_field) and\
                    (slug_field not in dirty or not getattr(self, slug_field)):
                setattr(self, slug_field, slugify(getattr(self, title_field)))
                if update_fields and slug_field not in update_fields:
                    update_fields.append(slug_field)

        return super().save(update_fields=update_fields, **kwargs)
コード例 #4
0
ファイル: views.py プロジェクト: raratiru/django-letsagree
    def get_form_class(self):
        """
        Initialize modelformset_factory within the FormView instance instead of
        the form_class because get_language() has a context only within the
        request/response cycle.

        https://code.djangoproject.com/ticket/31911#ticket
        https://github.com/matthiask/django-translated-fields/issues/24#issuecomment-678069602
        """
        return modelformset_factory(
            models.Term,
            form=PendingConsentForm,
            extra=0,
            fields=(
                "date_created",
                to_attribute("summary"),
                to_attribute("content"),
                "agree",
            ),
        )
コード例 #5
0
class TermAdmin(*term_parents):
    autocomplete_fields = ("group_key", )
    list_display = ("id", "group_key", "date_created", "title")
    list_display_links = ("id", "date_created", "title")
    readonly_fields = ("date_created", )
    search_fields = ("id", to_attribute("title"))

    @staticmethod
    def has_delete_permission(request, obj=None):
        return False

    @staticmethod
    def has_change_permission(request, obj=None):
        return False
コード例 #6
0
    def save(self, update_fields=None, **kwargs):
        if self._is_valid_for_language:
            dirty = set(self.get_dirty_fields().keys())
            if update_fields is not None:
                dirty = set(x for x in dirty if x in update_fields)

            for langcode, _ in settings.LANGUAGES[1:]:
                if self._is_valid_for_language is None:
                    break
                for name in self.REQUIRED_TRANSLATED_FIELDS:
                    trans_name = to_attribute(name, langcode)
                    if trans_name in dirty:
                        self._is_valid_for_language = None
                        break

        return super().save(update_fields=update_fields, **kwargs)
コード例 #7
0
    def valid_language(self, current=None):
        if current is None:
            current = translation.get_language()
        if current == settings.LANGUAGE_CODE:
            return current

        if self._is_valid_for_language is None:
            self._is_valid_for_language = set()

            for langcode, _ in settings.LANGUAGES[1:]:
                for name in self.REQUIRED_TRANSLATED_FIELDS:
                    if not getattr(self, to_attribute(name, langcode)):
                        break
                else:
                    self._is_valid_for_language.add(langcode)

        if current in self._is_valid_for_language:
            return current
        return settings.LANGUAGE_CODE
コード例 #8
0
class TermAdmin(*term_parents):
    autocomplete_fields = ("group_key", )
    list_display = ("id", "group_key", "date_created", "title")
    list_display_links = ("id", "date_created", "title")
    readonly_fields = ("date_created", )
    search_fields = ("id", to_attribute("title"))

    @staticmethod
    def has_delete_permission(request, obj=None):
        return False

    @staticmethod
    def has_change_permission(request, obj=None):
        return False

    def get_queryset(self, request):
        qs = super().get_queryset(request)
        if request.user.has_perm("letsagree.add_term"):
            return qs
        else:
            return qs.filter(group_key__user=request.user)
コード例 #9
0
ファイル: views.py プロジェクト: dozymoe/smp-angkasa--ats
 def get_slug_field(self):
     return to_attribute(self.slug_field, self.request.LANGUAGE_CODE)
コード例 #10
0
ファイル: utils.py プロジェクト: mambaCoder/speedy-net
def to_attribute(name, language_code=None):
    language_code = language_code or get_language() or django_settings.LANGUAGE_CODE
    return translated_fields.to_attribute(name=name, language_code=language_code)
コード例 #11
0
 def getter(self):
     return getattr(self, to_attribute(name, self.valid_language()))
コード例 #12
0
ファイル: admin.py プロジェクト: vanovarderesyan/pdfapi
 def get_ordering(self, request):
     return [to_attribute("question")]