mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-31 07:49:57 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (C) 2018-2025 by BDE ENS Paris-Saclay
 | |
| # SPDX-License-Identifier: GPL-3.0-or-later
 | |
| 
 | |
| from django.utils.html import format_html
 | |
| from django.utils.translation import gettext_lazy as _
 | |
| from note_kfet.middlewares import get_current_request
 | |
| import django_tables2 as tables
 | |
| from django_tables2 import A
 | |
| from permission.backends import PermissionBackend
 | |
| 
 | |
| from .models import Wrapped
 | |
| 
 | |
| 
 | |
| class WrappedTable(tables.Table):
 | |
|     """
 | |
|     List all wrapped
 | |
|     """
 | |
|     class Meta:
 | |
|         attrs = {
 | |
|             'class': 'table table-condensed table-striped table-hover',
 | |
|             'id': 'wrapped_table'
 | |
|         }
 | |
|         row_attrs = {
 | |
|             'class': lambda record: 'bg-danger' if not record.generated else '',
 | |
|         }
 | |
|         model = Wrapped
 | |
|         template_name = 'django_tables2/bootstrap4.html'
 | |
|         fields = ('note', 'bde', 'public', )
 | |
| 
 | |
|     view = tables.LinkColumn(
 | |
|         'wrapped:wrapped_detail',
 | |
|         args=[A('pk')],
 | |
|         attrs={
 | |
|             'td': {'class': 'col-sm-2'},
 | |
|             'a': {
 | |
|                 'class': 'btn btn-sm btn-primary',
 | |
|                 'data-turbolinks': 'false',
 | |
|             }
 | |
|         },
 | |
|         text=_('view the wrapped'),
 | |
|         accessor='pk',
 | |
|         verbose_name=_('View'),
 | |
|         orderable=False,
 | |
|     )
 | |
| 
 | |
|     public = tables.Column(
 | |
|         accessor="pk",
 | |
|         orderable=False,
 | |
|         attrs={
 | |
|             "td": {
 | |
|                 "id": lambda record: "makepublic_" + str(record.pk),
 | |
|                 "class": 'col-sm-1',
 | |
|                 "data-toggle": "tooltip",
 | |
|                 "title": lambda record:
 | |
|                 (_("Click to make this wrapped private") if record.public else
 | |
|                     _("Click to make this wrapped public")) if PermissionBackend.check_perm(
 | |
|                     get_current_request(), "wrapped.change_wrapped_public", record) else None,
 | |
|                 "onclick": lambda record:
 | |
|                 'makepublic(' + str(record.id) + ', ' + str(not record.public).lower() + ')'
 | |
|                 if PermissionBackend.check_perm(get_current_request(), "wrapped.change_wrapped_public",
 | |
|                                                 record) else None
 | |
|             }
 | |
|         },
 | |
|     )
 | |
| 
 | |
|     share = tables.Column(
 | |
|         verbose_name=_("Share"),
 | |
|         accessor="pk",
 | |
|         orderable=False,
 | |
|         attrs={
 | |
|             "td": {
 | |
|                 "class": 'col-sm-2',
 | |
|                 "title": _("Click to copy the link in the press paper"),
 | |
|             }
 | |
|         },
 | |
|     )
 | |
| 
 | |
|     def render_share(self, value, record):
 | |
|         val = '<a class="btn btn-sm btn-primary" data-turbolinks="false" '
 | |
|         val += 'onclick="copylink(' + str(record.id) + ')">'
 | |
|         val += _('Copy link')
 | |
|         val += '</a>'
 | |
|         return format_html(val)
 | |
| 
 | |
|     def render_public(self, value, record):
 | |
|         val = "✔" if record.public else "✖"
 | |
|         return val
 |