Advertisement
dregueiro

Render contexto

Jan 31st, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.58 KB | None | 0 0
  1. VIEWS
  2.  
  3. def rangospro(request, programa_id=None):
  4. template_name = "settings/programarank1.html"
  5. rangos = Rank.objects.filter(activo=True)
  6. programa = Programa.objects.filter(activo=True)
  7. form_rangospro = {}
  8. contexto = {}
  9.  
  10. if request.method=="GET":
  11. form_rangospro = RangosProForm()
  12. enc = Programa.objects.filter(id=programa_id).first()
  13. if enc:
  14. det = ProgramaRank.objects.filter(programa = enc)
  15. e = {'programa': enc.descripcion,
  16. 'rangoactual': rangos.rank,
  17. 'rangonuevo': rangos.rank}
  18. form_rangospro = RangosProForm(e)
  19. else:
  20. det = None
  21.  
  22. oontexto = {'rangos': rangos, 'programa': programa, 'encabezado': enc, 'detalle': det, 'form_enc': form_rangospro}
  23.  
  24. return render(request,template_name,contexto)
  25.  
  26.  
  27. MODELS
  28. class Rank(ClaseModelo):
  29. codigo = models.CharField(
  30. max_length=5,
  31. help_text='Rank Codigo',
  32. unique=True
  33. )
  34. descripcion = models.CharField(
  35. max_length=50,
  36. help_text='Descripcion del Rango',
  37. unique=True
  38. )
  39. color = RGBColorField(colors=['#FFFFFF','#FBB403','#FBF703','#0D6006','#0CC70C','#B005F5','#000291','#626163','#FF0110','#000000'],default='#FFFFFF')
  40.  
  41. def __str__(self):
  42. return '{} - {}'.format(self.codigo, self.descripcion)
  43.  
  44.  
  45. def save(self):
  46. self.codigo= self.codigo.upper()
  47. self.descripcion=self.descripcion.upper()
  48. self.color = self.color.upper()
  49. super(Rank,self).save()
  50.  
  51. class Meta:
  52. verbose_name_plural="Ranks"
  53.  
  54.  
  55. class ProgramaRank(models.Model):
  56. programa = models.ForeignKey(Programa, on_delete=models.CASCADE)
  57. rangoactual = models.ForeignKey(Rank, related_name="rangoactual", on_delete=models.CASCADE)
  58. rangonuevo = models.ForeignKey(Rank, related_name='rangonuevo', on_delete=models.CASCADE)
  59.  
  60.  
  61. class Programa(ClaseModelo):
  62. descripcion = models.CharField(
  63. max_length=50,
  64. help_text='Descripcion de Programa',
  65. unique=True
  66. )
  67.  
  68. def __str__(self):
  69. return '{}'.format(self.descripcion)
  70.  
  71. def save(self):
  72. self.descripcion = self.descripcion.upper()
  73. super(Programa, self).save()
  74.  
  75. class Meta:
  76. verbose_name_plural="Programas"
  77.  
  78.  
  79.  
  80. TEMPLATE
  81.  
  82. {% extends 'base/base.html' %}
  83. {% block content %}
  84. <form method="post" id="frmCompras">
  85. {% csrf_token %}
  86. <div class="col-xl-12 col-md-12 mb-12">
  87. {% if encabezado %}
  88. <div class="card border-left-danger shadow h-100 py-2">
  89. {% else %}
  90. <div class="card border-left-success shadow h-100 py-2">
  91. {% endif %}
  92. <div class="card-body">
  93. <div class="row no-gutters align-items-center">
  94. <h2 class="m-2 font-weight-bold text-primary">
  95. {% if encabezado %} Editar {% else %} Nueva {% endif %} Estructura de Rangos
  96. </h2>
  97. </div>
  98. <div class="card card-body">
  99. <div class="form-group row">
  100. <label for="programa" class="col-sm-2 col-form-label">Programa:</label>
  101. <div class="col-sm-10">
  102. {{ programa.descripcion }}
  103. </div>
  104. </div>
  105. <div class="form-group row">
  106. <div class="col-6">
  107. <div class="form-group">
  108. <label for="id_rangoactual">Rango Actual:</label>
  109. {{ rangos.rangoactual }}
  110. </div>
  111. </div>
  112. <div class="col-6">
  113. <div class="form-group">
  114. <label for="id_rangonuevo">Rango Nuevo:</label>
  115. {{ rangos.rangonuevo }}
  116. </div>
  117. </div>
  118. </div>
  119. <div class="row">
  120. <table class="table table-striped table-hover dt-responsive nowrap" style="width:100%">
  121. <thead>
  122. <th>Rango Actual</th>
  123. <th>Rango Nuevo</th>
  124. <th class="all">Acciones</th>
  125. </thead>
  126. <tbody>
  127. {% for item in detalle %}
  128. <tr>
  129. <td>{{ item.rangoactual }}</td>
  130. <td>{{ item.rangonuevo }}</td>
  131. <td>
  132. <button class="btn btn-danger btn-circle" onclick="#"><i class="fas fa-trash-alt"></i></button>
  133. </td>
  134. </tr>
  135. {% endfor %}
  136. </tbody>
  137. </table>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. </form>
  143. {% endblock %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement