Showing
7 changed files
with
403 additions
and
261 deletions
... | @@ -11,6 +11,14 @@ class UserCreationForm(UserCreationForm): | ... | @@ -11,6 +11,14 @@ class UserCreationForm(UserCreationForm): |
11 | help_text=("github 레포지토리를 등록하세요.")) | 11 | help_text=("github 레포지토리를 등록하세요.")) |
12 | 12 | ||
13 | 13 | ||
14 | +class UserEditForm(forms.Form): | ||
15 | + email = EmailField(label=("이메일"), required=True, | ||
16 | + help_text=("이메일을 입력하세요.")) | ||
17 | + | ||
18 | + repository = URLField(label=("레포지토리"), required=True, | ||
19 | + help_text=("github 레포지토리를 입력하세요.")) | ||
20 | + | ||
21 | + | ||
14 | class Meta: | 22 | class Meta: |
15 | model = User | 23 | model = User |
16 | fields = ("username", "email", "repository", "password1", "password2") | 24 | fields = ("username", "email", "repository", "password1", "password2") | ... | ... |
... | @@ -26,6 +26,8 @@ urlpatterns = [ | ... | @@ -26,6 +26,8 @@ urlpatterns = [ |
26 | url(r'^home/', HomeView.as_view(), name='home'), | 26 | url(r'^home/', HomeView.as_view(), name='home'), |
27 | url(r'^myapp/', include('myapp.urls', namespace='myapp')), | 27 | url(r'^myapp/', include('myapp.urls', namespace='myapp')), |
28 | 28 | ||
29 | + url(r'^edit/', EditView.as_view(), name='edit'), | ||
30 | + | ||
29 | url(r'^accounts/', include('django.contrib.auth.urls')), | 31 | url(r'^accounts/', include('django.contrib.auth.urls')), |
30 | url(r'^accounts/register/$', UserCreateView.as_view(), name='register'), | 32 | url(r'^accounts/register/$', UserCreateView.as_view(), name='register'), |
31 | url(r'^accounts/register/done$', UserCreateDoneTV.as_view(), name='register_done'), | 33 | url(r'^accounts/register/done$', UserCreateDoneTV.as_view(), name='register_done'), | ... | ... |
... | @@ -59,6 +59,25 @@ class HomeView(View): | ... | @@ -59,6 +59,25 @@ class HomeView(View): |
59 | # with connection.cursor() as cursor: | 59 | # with connection.cursor() as cursor: |
60 | # cursor.execute(query, param_list) | 60 | # cursor.execute(query, param_list) |
61 | 61 | ||
62 | +class EditView(TemplateView): | ||
63 | + template_name = 'registration/edit.html' | ||
64 | + success_url = reverse_lazy('register_done') | ||
65 | + | ||
66 | + def get(self, request, *args, **kwargs): | ||
67 | + context = {} | ||
68 | + red = 10 | ||
69 | + context['red'] = red | ||
70 | + context['form'] = UserEditForm | ||
71 | + return render(self.request, self.template_name, context) | ||
72 | + | ||
73 | + def post(self, request, *args, **kwargs): | ||
74 | + | ||
75 | + email = self.request.POST['email'] | ||
76 | + repository = self.request.POST['repository'] | ||
77 | + | ||
78 | + print(email, repository) | ||
79 | + return render(self.request, 'index.html') | ||
80 | + | ||
62 | 81 | ||
63 | 82 | ||
64 | class UserCreateView(CreateView): | 83 | class UserCreateView(CreateView): | ... | ... |
... | @@ -17,42 +17,13 @@ | ... | @@ -17,42 +17,13 @@ |
17 | <link rel="stylesheet" href="{% static 'vendor/magnific-popup/magnific-popup.css' %}"> | 17 | <link rel="stylesheet" href="{% static 'vendor/magnific-popup/magnific-popup.css' %}"> |
18 | <!-- Custom styles for this template --> | 18 | <!-- Custom styles for this template --> |
19 | <link rel="stylesheet" href="{% static 'css/freelancer.min.css' %}"> | 19 | <link rel="stylesheet" href="{% static 'css/freelancer.min.css' %}"> |
20 | - | 20 | + <!-- highlight.js --> |
21 | - <script src="//cdnjs.cloudflare.com/ajax/libs/Chart.js/0.2.0/Chart.min.js" type="text/javascript"></script> | 21 | + <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/styles/default.min.css"> |
22 | - <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script> | 22 | + <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/highlight.min.js"></script> |
23 | - <script type="text/javascript"> | 23 | + <script>hljs.initHighlightingOnLoad();</script> |
24 | - $( document ).ready(function() { | 24 | + <link rel="stylesheet" href="//cdn.jsdelivr.net/highlight.js/9.5.0/styles/vs2015.min.css"> |
25 | - var ctx = document.getElementById("myChart"); | 25 | + <script src="//cdn.jsdelivr.net/highlight.js/9.5.0/highlight.min.js"></script> |
26 | - var data = { | 26 | + <script>hljs.initHighlightingOnLoad();</script> |
27 | - labels: [ | ||
28 | - "Red", | ||
29 | - "Blue", | ||
30 | - "Yellow" | ||
31 | - ], | ||
32 | - datasets: [ | ||
33 | - { | ||
34 | - data: [300, 50, 100], | ||
35 | - backgroundColor: [ | ||
36 | - "#FF6384", | ||
37 | - "#36A2EB", | ||
38 | - "#FFCE56" | ||
39 | - ], | ||
40 | - hoverBackgroundColor: [ | ||
41 | - "#FF6384", | ||
42 | - "#36A2EB", | ||
43 | - "#FFCE56" | ||
44 | - ] | ||
45 | - } | ||
46 | - ] | ||
47 | - }; | ||
48 | - | ||
49 | - var myChart = new Chart(ctx, { | ||
50 | - type: 'pie', | ||
51 | - data: data, | ||
52 | - options: options | ||
53 | - }); | ||
54 | - }); | ||
55 | - </script> | ||
56 | </head> | 27 | </head> |
57 | 28 | ||
58 | 29 | ||
... | @@ -80,24 +51,35 @@ | ... | @@ -80,24 +51,35 @@ |
80 | </nav> | 51 | </nav> |
81 | 52 | ||
82 | <!-- Header --> | 53 | <!-- Header --> |
83 | - <header class="masthead bg-primary text-white text-center"> | 54 | + <header class="bg-primary text-white text-center"> |
84 | <div class="container"> | 55 | <div class="container"> |
85 | - | ||
86 | <h3 class="text-uppercase mb-0">정적 분석 페이지 입니다.</h3> | 56 | <h3 class="text-uppercase mb-0">정적 분석 페이지 입니다.</h3> |
87 | <hr class="star-light"> | 57 | <hr class="star-light"> |
88 | - <h2 class="font-weight-light mb-0"></h2> | ||
89 | </div> | 58 | </div> |
90 | 59 | ||
91 | </header> | 60 | </header> |
92 | 61 | ||
93 | <!-- Portfolio Grid Section --> | 62 | <!-- Portfolio Grid Section --> |
94 | 63 | ||
95 | -<canvas id="myChart" width="400" height="400"></canvas> | ||
96 | <!-- <section class="portfolio" id="portfolio"> --> | 64 | <!-- <section class="portfolio" id="portfolio"> --> |
97 | - <div class="col-md-6 col-lg-6" style="float:left;"> | 65 | + <div class="col-md-6 col-lg-6" style="float: left;"> |
98 | <div class="container"> | 66 | <div class="container"> |
67 | + <canvas id="barChart" width="700" height="200"></canvas> | ||
68 | + </div> | ||
69 | + </div> | ||
70 | + <div class="col-md-6 col-lg-6" style="float: right;"> | ||
71 | + <div class="container"> | ||
72 | + <canvas id="pieChart" width="700" height="200"></canvas> | ||
73 | + </div> | ||
74 | + </div> | ||
75 | + | ||
99 | 76 | ||
77 | + <p> </p> | ||
78 | + <p> </p> | ||
100 | 79 | ||
80 | + | ||
81 | + <div class="col-md-12 col-lg-12"> | ||
82 | + <div style="width: 100%; margin-left: 0px; margin-right: 0px;"> | ||
101 | <!-- <form method="post" action="."> | 83 | <!-- <form method="post" action="."> |
102 | <fieldset>{% csrf_token %} | 84 | <fieldset>{% csrf_token %} |
103 | <div> | 85 | <div> |
... | @@ -116,210 +98,139 @@ | ... | @@ -116,210 +98,139 @@ |
116 | <th>CVE</th> | 98 | <th>CVE</th> |
117 | <th>내용</th> | 99 | <th>내용</th> |
118 | <th>이름</th> | 100 | <th>이름</th> |
119 | - | ||
120 | - </tr> | ||
121 | - | ||
122 | - <tr> | ||
123 | - <td>1</td> | ||
124 | - <td>2</td> | ||
125 | - <td>경수</td> | ||
126 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
127 | - </tr> | ||
128 | - <tr> | ||
129 | - <td>1</td> | ||
130 | - <td>2</td> | ||
131 | - <td>경수</td> | ||
132 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
133 | - </tr><tr> | ||
134 | - <td>1</td> | ||
135 | - <td>2</td> | ||
136 | - <td>경수</td> | ||
137 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
138 | - </tr> | ||
139 | - <tr> | ||
140 | - <td>1</td> | ||
141 | - <td>2</td> | ||
142 | - <td>경수</td> | ||
143 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
144 | - </tr><tr> | ||
145 | - <td>1</td> | ||
146 | - <td>2</td> | ||
147 | - <td>경수</td> | ||
148 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
149 | - </tr> | ||
150 | - <tr> | ||
151 | - <td>1</td> | ||
152 | - <td>2</td> | ||
153 | - <td>경수</td> | ||
154 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
155 | - </tr><tr> | ||
156 | - <td>1</td> | ||
157 | - <td>2</td> | ||
158 | - <td>경수</td> | ||
159 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
160 | - </tr> | ||
161 | - <tr> | ||
162 | - <td>1</td> | ||
163 | - <td>2</td> | ||
164 | - <td>경수</td> | ||
165 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
166 | - </tr><tr> | ||
167 | - <td>1</td> | ||
168 | - <td>2</td> | ||
169 | - <td>경수</td> | ||
170 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
171 | - </tr> | ||
172 | - <tr> | ||
173 | - <td>1</td> | ||
174 | - <td>2</td> | ||
175 | - <td>경수</td> | ||
176 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
177 | - </tr><tr> | ||
178 | - <td>1</td> | ||
179 | - <td>2</td> | ||
180 | - <td>경수</td> | ||
181 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
182 | - </tr> | ||
183 | - | ||
184 | - <tr> | ||
185 | - <td>1</td> | ||
186 | - <td>2</td> | ||
187 | - <td>경수</td> | ||
188 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
189 | - </tr> | ||
190 | - | ||
191 | - </table> | ||
192 | - </div> | ||
193 | - </div> | ||
194 | - | ||
195 | - <div class="col-md-6 col-lg-6" style="float:left;"> | ||
196 | - <div class="container"> | ||
197 | - <table class="table table-hover"> | ||
198 | - <thead> | ||
199 | - <tr> | ||
200 | <th>번호</th> | 101 | <th>번호</th> |
201 | <th>제목</th> | 102 | <th>제목</th> |
202 | <th>이름</th> | 103 | <th>이름</th> |
203 | <th>CVE</th> | 104 | <th>CVE</th> |
204 | <th>내용</th> | 105 | <th>내용</th> |
205 | - <th>이름</th> | ||
206 | - | ||
207 | - </tr> | ||
208 | - <tr> | ||
209 | - <td>1</td> | ||
210 | - <td>2</td> | ||
211 | - <td>경수</td> | ||
212 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
213 | - </tr> | ||
214 | - | ||
215 | - <tr> | ||
216 | - <td>1</td> | ||
217 | - <td>2</td> | ||
218 | - <td>경수</td> | ||
219 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
220 | - </tr><tr> | ||
221 | - <td>1</td> | ||
222 | - <td>2</td> | ||
223 | - <td>경수</td> | ||
224 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
225 | - </tr> | ||
226 | - <tr> | ||
227 | - <td>1</td> | ||
228 | - <td>2</td> | ||
229 | - <td>경수</td> | ||
230 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
231 | - </tr><tr> | ||
232 | - <td>1</td> | ||
233 | - <td>2</td> | ||
234 | - <td>경수</td> | ||
235 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
236 | - </tr> | ||
237 | - <tr> | ||
238 | - <td>1</td> | ||
239 | - <td>2</td> | ||
240 | - <td>경수</td> | ||
241 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
242 | - </tr><tr> | ||
243 | - <td>1</td> | ||
244 | - <td>2</td> | ||
245 | - <td>경수</td> | ||
246 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
247 | - </tr> | ||
248 | - <tr> | ||
249 | - <td>1</td> | ||
250 | - <td>2</td> | ||
251 | - <td>경수</td> | ||
252 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
253 | - </tr><tr> | ||
254 | - <td>1</td> | ||
255 | - <td>2</td> | ||
256 | - <td>경수</td> | ||
257 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
258 | - </tr> | ||
259 | - <tr> | ||
260 | - <td>1</td> | ||
261 | - <td>2</td> | ||
262 | - <td>경수</td> | ||
263 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | ||
264 | - </tr><tr> | ||
265 | - <td>1</td> | ||
266 | - <td>2</td> | ||
267 | - <td>경수</td> | ||
268 | - <td><button class="btn btn-primary">자세히보기</button></td> | ||
269 | </tr> | 106 | </tr> |
107 | + {% for object in object_list %} | ||
270 | <tr> | 108 | <tr> |
271 | - <td>1</td> | 109 | + <td>{{ forloop.counter }}</td> |
272 | - <td>2</td> | 110 | + <td>{{ object.Language }}</td> |
273 | - <td>경수</td> | 111 | + <td>{{ object.Length }}</td> |
274 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | 112 | + <td>{{ object.PreviousFunc }}</td> |
275 | - </tr><tr> | 113 | + <td>{{ object.InputDate }}</td> |
276 | - <td>1</td> | 114 | + <td>{{ object.Hash }}</td> |
277 | - <td>2</td> | 115 | + <td>{{ forloop.counter }}</td> |
278 | - <td>경수</td> | 116 | + <td>{{ object.Language }}</td> |
279 | - <td><button class="btn btn-primary">자세히보기</button></td> | 117 | + <td>{{ object.Length }}</td> |
280 | - </tr> | 118 | + <td>{{ object.PreviousFunc }}</td> |
281 | - <tr> | 119 | + |
282 | - <td>1</td> | 120 | + <td id="modal_{{ forloop.counter }}"> |
283 | - <td>2</td> | 121 | + <a class="portfolio-item d-block mx-auto" href="#portfolio-modal-{{ forloop.counter }}"> |
284 | - <td>경수</td> | 122 | + <button class="btn btn-primary">자세히보기</button></td> |
285 | - <td><button class="btn btn-primary" data-toggle="modal" data-target="#myModal">자세히보기</button></td> | 123 | + </a> |
124 | + </td> | ||
286 | </tr> | 125 | </tr> |
287 | - | 126 | + {% endfor %} |
288 | </table> | 127 | </table> |
289 | </div> | 128 | </div> |
290 | - </div> | ||
291 | 129 | ||
292 | - <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> | 130 | + {% for object in object_list %} |
293 | - <div class="modal-dialog"> | 131 | + <div class="portfolio-modal mfp-hide" id="portfolio-modal-{{ forloop.counter }}"> |
294 | - <div class="modal-content"> | 132 | + <div class="portfolio-modal-dialog bg-white"> |
133 | + <!-- header --> | ||
295 | <div class="modal-header"> | 134 | <div class="modal-header"> |
296 | - <button type="button" class="close" data-dismiss="modal"> | 135 | + <h2 class="text-secondary text-uppercase mb-0" style="text-align: center;">cve function name</h2> |
297 | - <span aria-hidden="true">×</span> | ||
298 | - <span class="sr-only">Close</span> | ||
299 | - </button> | ||
300 | - <h4 class="modal-title">모달제목</h4> | ||
301 | - </div> | ||
302 | - <div class="modal-body"> | ||
303 | - <p>content</p> | ||
304 | - </div> | ||
305 | - <div class="modal-footer"> | ||
306 | - <button type="button" class="btn btn-default" data-dismiss="modal">닫기 | ||
307 | - </button> | ||
308 | - </div> | ||
309 | - </div> | ||
310 | </div> | 136 | </div> |
137 | + <!-- left side --> | ||
138 | + <div class="col-lg-6" style="float: left; border: 1px solid red; height: 1000px;"> | ||
139 | + <h2 class="text-secondary text-uppercase mb-0" style="text-align: center;">previous sourcecode</h2> | ||
140 | + <hr class="star-dark mb-5"> | ||
141 | + <pre><code> | ||
142 | + using namespace std; | ||
143 | + | ||
144 | + int main() | ||
145 | + { | ||
146 | + int rows; | ||
147 | + | ||
148 | + cout << "Enter number of rows: "; | ||
149 | + cin >> rows; | ||
150 | + | ||
151 | + for(int i = 1; i <= rows; ++i) | ||
152 | + { | ||
153 | + for(int j = 1; j <= i; ++j) | ||
154 | + { | ||
155 | + cout << j << " "; | ||
156 | + } | ||
157 | + cout << "\n"; | ||
158 | + } | ||
159 | + | ||
160 | + char input, alphabet = 'A'; | ||
161 | + | ||
162 | + cout << "Enter the uppercase character you want to print in the last row: "; | ||
163 | + cin >> input; | ||
164 | + | ||
165 | + for(int i = 1; i <= (input-'A'+1); ++i) | ||
166 | + { | ||
167 | + for(int j = 1; j <= i; ++j) | ||
168 | + { | ||
169 | + cout << alphabet << " "; | ||
170 | + } | ||
171 | + ++alphabet; | ||
172 | + | ||
173 | + cout << endl; | ||
174 | + } | ||
175 | + return 0; | ||
176 | + } | ||
177 | + </code></pre> | ||
311 | </div> | 178 | </div> |
179 | + <!-- right side --> | ||
180 | + <div class="col-lg-6" style="float: left; border: 1px solid red; height: 1000px;"> | ||
181 | + <h2 class="text-secondary text-uppercase mb-0" style="text-align: center;">modified sourcecode</h2> | ||
182 | + <hr class="star-dark mb-5"> | ||
183 | + <pre><code> | ||
184 | + using namespace std; | ||
185 | + | ||
186 | + int main() | ||
187 | + { | ||
188 | + int rows; | ||
189 | + | ||
190 | + cout << "Enter number of rows: "; | ||
191 | + cin >> rows; | ||
192 | + | ||
193 | + for(int i = 1; i <= rows; ++i) | ||
194 | + { | ||
195 | + for(int j = 1; j <= i; ++j) | ||
196 | + { | ||
197 | + cout << j << " "; | ||
198 | + } | ||
199 | + cout << "\n"; | ||
200 | + } | ||
201 | + | ||
202 | + char input, alphabet = 'A'; | ||
312 | 203 | ||
204 | + cout << "Enter the uppercase character you want to print in the last row: "; | ||
205 | + cin >> input; | ||
313 | 206 | ||
207 | + for(int i = 1; i <= (input-'A'+1); ++i) | ||
208 | + { | ||
209 | + for(int j = 1; j <= i; ++j) | ||
210 | + { | ||
211 | + cout << alphabet << " "; | ||
212 | + } | ||
213 | + ++alphabet; | ||
314 | 214 | ||
315 | - <!-- Scroll to Top Button (Only visible on small and extra-small screen sizes) --> | 215 | + cout << endl; |
316 | - <div class="scroll-to-top d-lg-none position-fixed "> | 216 | + } |
317 | - <a class="js-scroll-trigger d-block text-center text-white rounded" href="#page-top"> | 217 | + return 0; |
318 | - <i class="fa fa-chevron-up"></i> | 218 | + } |
219 | + </code></pre> | ||
220 | + </div> | ||
221 | + <!-- footer --> | ||
222 | + <div class="modal-footer" style="float: clear;"> | ||
223 | + <a class="btn btn-primary btn-lg rounded-pill portfolio-modal-dismiss" href="#"> | ||
224 | + <i class="fa fa-close"></i> | ||
225 | + Close | ||
319 | </a> | 226 | </a> |
320 | </div> | 227 | </div> |
321 | 228 | ||
229 | + </div> | ||
230 | + </div> | ||
231 | + {% endfor %} | ||
322 | 232 | ||
233 | + </body> | ||
323 | 234 | ||
324 | <script src="{% static 'js/Chart.min.js' %}"></script> | 235 | <script src="{% static 'js/Chart.min.js' %}"></script> |
325 | <script src="{% static 'vendor/freelancer_jquery/jquery.min.js' %}"></script> | 236 | <script src="{% static 'vendor/freelancer_jquery/jquery.min.js' %}"></script> |
... | @@ -330,12 +241,90 @@ | ... | @@ -330,12 +241,90 @@ |
330 | <script src="{% static 'js/contact_me.js' %}"></script> | 241 | <script src="{% static 'js/contact_me.js' %}"></script> |
331 | <script src="{% static 'js/freelancer.min.js' %}"></script> | 242 | <script src="{% static 'js/freelancer.min.js' %}"></script> |
332 | 243 | ||
333 | - <script> | 244 | + <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.0.min.js"></script> |
334 | - | 245 | + <script type="text/javascript" src="{% static 'js/Chart.min.js' %}"></script> |
246 | + <script type="text/javascript"> | ||
335 | 247 | ||
336 | - </script> | 248 | + // barChart |
249 | + var ctx = document.getElementById("barChart").getContext('2d'); | ||
250 | + var myChart = new Chart(ctx, { | ||
251 | + type: 'bar', | ||
252 | + data: { | ||
253 | + labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"], | ||
254 | + datasets: [{ | ||
255 | + label: '# of Votes', | ||
256 | + data: [12, 19, 3, 5, 2, 3], | ||
257 | + backgroundColor: [ | ||
258 | + 'rgba(255, 99, 132, 0.2)', | ||
259 | + 'rgba(54, 162, 235, 0.2)', | ||
260 | + 'rgba(255, 206, 86, 0.2)', | ||
261 | + 'rgba(75, 192, 192, 0.2)', | ||
262 | + 'rgba(153, 102, 255, 0.2)', | ||
263 | + 'rgba(255, 159, 64, 0.2)' | ||
264 | + ], | ||
265 | + borderColor: [ | ||
266 | + 'rgba(255,99,132,1)', | ||
267 | + 'rgba(54, 162, 235, 1)', | ||
268 | + 'rgba(255, 206, 86, 1)', | ||
269 | + 'rgba(75, 192, 192, 1)', | ||
270 | + 'rgba(153, 102, 255, 1)', | ||
271 | + 'rgba(255, 159, 64, 1)' | ||
272 | + ], | ||
273 | + borderWidth: 1 | ||
274 | + }] | ||
275 | + }, | ||
276 | + options: { | ||
277 | + scales: { | ||
278 | + yAxes: [{ | ||
279 | + ticks: { | ||
280 | + beginAtZero:true | ||
281 | + } | ||
282 | + }] | ||
283 | + } | ||
284 | + } | ||
285 | + }); | ||
337 | 286 | ||
287 | + // pieChart | ||
288 | + var red = {{ red }} | ||
289 | + var green = {{ green }} | ||
290 | + var blue = {{ blue }} | ||
338 | 291 | ||
339 | - </body> | 292 | + var ctx = document.getElementById("pieChart").getContext('2d'); |
293 | + var data = { | ||
294 | + datasets: [{ | ||
295 | + data: [red, green, blue], | ||
296 | + backgroundColor: [ | ||
297 | + 'rgba(255, 99, 132, 0.2)', | ||
298 | + 'rgba(54, 162, 235, 0.2)', | ||
299 | + 'rgba(255, 206, 86, 0.2)', | ||
300 | + ], | ||
301 | + borderColor: [ | ||
302 | + 'rgba(255,99,132,1)', | ||
303 | + 'rgba(54, 162, 235, 1)', | ||
304 | + 'rgba(255, 206, 86, 1)', | ||
305 | + ], | ||
306 | + borderWidth: 1 | ||
307 | + }], | ||
308 | + // These labels appear in the legend and in the tooltips when hovering different arcs | ||
309 | + labels: [ | ||
310 | + 'Red', | ||
311 | + 'Yellow', | ||
312 | + 'Blue' | ||
313 | + ] | ||
314 | + }; | ||
315 | + var options = { | ||
316 | + title: { | ||
317 | + display: true, | ||
318 | + text: 'CVE', | ||
319 | + position: 'top' | ||
320 | + }, | ||
321 | + rotation: -0.7 * Math.PI | ||
322 | + }; | ||
340 | 323 | ||
324 | + var myChart = new Chart(ctx, { | ||
325 | + type: 'pie', | ||
326 | + data: data, | ||
327 | + options: options | ||
328 | + }); | ||
329 | + </script> | ||
341 | </html> | 330 | </html> | ... | ... |
... | @@ -14,6 +14,31 @@ class MypageView(TemplateView): | ... | @@ -14,6 +14,31 @@ class MypageView(TemplateView): |
14 | context = {} | 14 | context = {} |
15 | context['form'] = testform | 15 | context['form'] = testform |
16 | 16 | ||
17 | + query = 'SELECT * FROM vuln.vulnInfo' | ||
18 | + | ||
19 | + param_list = [] | ||
20 | + | ||
21 | + with connection.cursor() as cursor: | ||
22 | + cursor.execute(query, param_list) | ||
23 | + | ||
24 | + columns = [column[0] for column in cursor.description] | ||
25 | + | ||
26 | + object_list = [] | ||
27 | + | ||
28 | + for row in cursor.fetchall(): | ||
29 | + object_list.append(dict(zip(columns, row))) | ||
30 | + | ||
31 | + context = {} | ||
32 | + | ||
33 | + red = 3 | ||
34 | + blue = 4 | ||
35 | + green = 5 | ||
36 | + | ||
37 | + context['red'] = red | ||
38 | + context['blue'] = blue | ||
39 | + context['green'] = green | ||
40 | + context['object_list'] = object_list | ||
41 | + | ||
17 | return render(self.request, self.template_name, context) | 42 | return render(self.request, self.template_name, context) |
18 | 43 | ||
19 | 44 | ... | ... |
... | @@ -37,10 +37,6 @@ | ... | @@ -37,10 +37,6 @@ |
37 | <li class="nav-item mx-0 mx-lg-1"> | 37 | <li class="nav-item mx-0 mx-lg-1"> |
38 | <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#about">Dynamic</a> | 38 | <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#about">Dynamic</a> |
39 | </li> | 39 | </li> |
40 | - <li class="nav-item mx-0 mx-lg-1"> | ||
41 | - <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#contact">Contact</a> | ||
42 | - </li> | ||
43 | - | ||
44 | {% if user.is_active %} | 40 | {% if user.is_active %} |
45 | <!-- <li class="nav-item mx-0 mx-lg-1"> | 41 | <!-- <li class="nav-item mx-0 mx-lg-1"> |
46 | <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="/myapp/mypage">myPage</a> | 42 | <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="/myapp/mypage">myPage</a> |
... | @@ -49,7 +45,7 @@ | ... | @@ -49,7 +45,7 @@ |
49 | <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="{% url 'logout' %}?next=/home">Logout</a> | 45 | <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="{% url 'logout' %}?next=/home">Logout</a> |
50 | </li> | 46 | </li> |
51 | <li class="nav-item mx-0 mx-lg-1"> | 47 | <li class="nav-item mx-0 mx-lg-1"> |
52 | - <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="{% url 'logout' %}?next=/home">Edit Info</a> | 48 | + <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="{% url 'edit' %}">Edit Info</a> |
53 | </li> | 49 | </li> |
54 | {% else %} | 50 | {% else %} |
55 | <li class="nav-item mx-0 mx-lg-1"> | 51 | <li class="nav-item mx-0 mx-lg-1"> |
... | @@ -214,34 +210,7 @@ | ... | @@ -214,34 +210,7 @@ |
214 | <br></p> | 210 | <br></p> |
215 | </div> | 211 | </div> |
216 | <div class="col-md-4 mb-5 mb-lg-0"> | 212 | <div class="col-md-4 mb-5 mb-lg-0"> |
217 | - <h4 class="text-uppercase mb-4">Around the Web</h4> | 213 | + |
218 | - <ul class="list-inline mb-0"> | ||
219 | - <li class="list-inline-item"> | ||
220 | - <a class="btn btn-outline-light btn-social text-center rounded-circle" href="#"> | ||
221 | - <i class="fa fa-fw fa-facebook"></i> | ||
222 | - </a> | ||
223 | - </li> | ||
224 | - <li class="list-inline-item"> | ||
225 | - <a class="btn btn-outline-light btn-social text-center rounded-circle" href="#"> | ||
226 | - <i class="fa fa-fw fa-google-plus"></i> | ||
227 | - </a> | ||
228 | - </li> | ||
229 | - <li class="list-inline-item"> | ||
230 | - <a class="btn btn-outline-light btn-social text-center rounded-circle" href="#"> | ||
231 | - <i class="fa fa-fw fa-twitter"></i> | ||
232 | - </a> | ||
233 | - </li> | ||
234 | - <li class="list-inline-item"> | ||
235 | - <a class="btn btn-outline-light btn-social text-center rounded-circle" href="#"> | ||
236 | - <i class="fa fa-fw fa-linkedin"></i> | ||
237 | - </a> | ||
238 | - </li> | ||
239 | - <li class="list-inline-item"> | ||
240 | - <a class="btn btn-outline-light btn-social text-center rounded-circle" href="#"> | ||
241 | - <i class="fa fa-fw fa-dribbble"></i> | ||
242 | - </a> | ||
243 | - </li> | ||
244 | - </ul> | ||
245 | </div> | 214 | </div> |
246 | <div class="col-md-4"> | 215 | <div class="col-md-4"> |
247 | <h4 class="text-uppercase mb-4">About Us</h4> | 216 | <h4 class="text-uppercase mb-4">About Us</h4> | ... | ... |
VulnNotti/templates/registration/edit.html
0 → 100644
1 | +{% load staticfiles %} | ||
2 | +{% load crispy_forms_tags %} | ||
3 | +<!DOCTYPE html> | ||
4 | +<html lang="en"> | ||
5 | + <head> | ||
6 | + | ||
7 | + <meta charset="utf-8"> | ||
8 | + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
9 | + <meta name="description" content=""> | ||
10 | + <meta name="author" content=""> | ||
11 | + | ||
12 | + <title>VulnNotti</title> | ||
13 | + | ||
14 | + <!-- Bootstrap core CSS --> | ||
15 | + <link rel="stylesheet" href="{% static 'vendor/freelancer_bootstrap/css/bootstrap.min.css' %}"> | ||
16 | + | ||
17 | + <!-- Custom fonts for this template --> | ||
18 | + <link rel="stylesheet" href="{% static 'vendor/freelancer_font-awesome/css/font-awesome.min.css' %}"> | ||
19 | + | ||
20 | + <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css"> | ||
21 | + <link href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic" rel="stylesheet" type="text/css"> | ||
22 | + | ||
23 | + <!-- Plugin CSS --> | ||
24 | + <link rel="stylesheet" href="{% static 'vendor/magnific-popup/magnific-popup.css' %}"> | ||
25 | + <!-- Custom styles for this template --> | ||
26 | + <link rel="stylesheet" href="{% static 'css/freelancer.min.css' %}"> | ||
27 | + | ||
28 | + <style> | ||
29 | + | ||
30 | + .errornote{ | ||
31 | + display: block; | ||
32 | + margin: 5px 0; | ||
33 | + border: 1px solid #c30; | ||
34 | + background: #fcf; | ||
35 | + padding: 5px 25px; | ||
36 | + color: #c30; | ||
37 | + font-size: 12px; | ||
38 | + font-weight: bold; | ||
39 | + } | ||
40 | + | ||
41 | + fieldset{ | ||
42 | + border: 1px solid #ccc; | ||
43 | + } | ||
44 | + | ||
45 | + .aligned label{ | ||
46 | + width: 170px; | ||
47 | + display: block; | ||
48 | + padding: 3px 10px 0 0; | ||
49 | + float: left; | ||
50 | + } | ||
51 | + | ||
52 | + .form-row{ | ||
53 | + padding: 10px; | ||
54 | + font-size: 11px; | ||
55 | + border-bottom: 1px solid #eee; | ||
56 | + } | ||
57 | + | ||
58 | + .submit-row{ | ||
59 | + margin: 5px 0; | ||
60 | + border: 1px solid #ccc; | ||
61 | + text-align: right; | ||
62 | + } | ||
63 | + | ||
64 | + .submit-row input{ | ||
65 | + margin: 10px; | ||
66 | + background: #ffc; | ||
67 | + } | ||
68 | + | ||
69 | + </style> | ||
70 | + </head> | ||
71 | + | ||
72 | + <body id="page-top"> | ||
73 | + | ||
74 | + | ||
75 | + <!-- Header --> | ||
76 | + <header class="masthead bg-primary text-white text-center"> | ||
77 | + <div class="container"> | ||
78 | + <h1>Edit User Repository</h1> | ||
79 | + </div> | ||
80 | + </header> | ||
81 | + | ||
82 | + | ||
83 | + | ||
84 | + <section> | ||
85 | + | ||
86 | + <form method="post" action="."> {% csrf_token %} | ||
87 | + | ||
88 | + {% if form.errors %} | ||
89 | + <p class="errornote">Wrong! Please correct the error(s) below.</p> | ||
90 | + {% endif %} | ||
91 | + | ||
92 | + <fieldset class="aligned"> | ||
93 | + | ||
94 | + <div> | ||
95 | + {{ form|crispy }} | ||
96 | + </div> | ||
97 | + <input class="btn btn-success" style="background-color:#FF0066; border:#FF0066;"type="submit" value="Edit"/> | ||
98 | + | ||
99 | + </fieldset> | ||
100 | + | ||
101 | + </section> | ||
102 | + | ||
103 | + | ||
104 | + | ||
105 | + <div class="copyright py-4 text-center text-white"> | ||
106 | + <div class="container"> | ||
107 | + <small>Copyright ©www.VulnNotti.com</small> | ||
108 | + </div> | ||
109 | + </div> | ||
110 | + | ||
111 | + <!-- Scroll to Top Button (Only visible on small and extra-small screen sizes) --> | ||
112 | + <div class="scroll-to-top d-lg-none position-fixed "> | ||
113 | + <a class="js-scroll-trigger d-block text-center text-white rounded" href="#page-top"> | ||
114 | + <i class="fa fa-chevron-up"></i> | ||
115 | + </a> | ||
116 | + </div> | ||
117 | + | ||
118 | + <!-- Portfolio Modals --> | ||
119 | + | ||
120 | + <script src="{% static 'vendor/freelancer_jquery/jquery.min.js' %}"></script> | ||
121 | + <script src="{% static 'vendor/freelancer_bootstrap/js/bootstrap.bundle.min.js' %}"></script> | ||
122 | + <script src="{% static 'vendor/jquery-easing/jquery.easing.min.js' %}"></script> | ||
123 | + <script src="{% static 'vendor/magnific-popup/jquery.magnific-popup.min.js' %}"></script> | ||
124 | + <script src="{% static 'js/jqBootstrapValidation.js' %}"></script> | ||
125 | + <script src="{% static 'js/contact_me.js' %}"></script> | ||
126 | + <script src="{% static 'js/freelancer.min.js' %}"></script> | ||
127 | + | ||
128 | + </body> | ||
129 | + | ||
130 | +</html> |
-
Please register or login to post a comment