Skip to content

Commit

Permalink
Convert node_num field to NumberInput and Modify forms layout
Browse files Browse the repository at this point in the history
  • Loading branch information
devbruce committed Mar 7, 2019
1 parent 5791832 commit 5e4435d
Show file tree
Hide file tree
Showing 7 changed files with 128 additions and 110 deletions.
91 changes: 51 additions & 40 deletions app/templates/viz/viz_configs/sna.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,45 +16,52 @@ <h2 class="text-center m-3"><b>Semantic Network Analysis</b> <span class="badge
{% endfor %}
{% endif %}

<b>{{ form.data.label }}</b>
{{ form.data }}
{% for error in form.data.errors %}
<small class="form-text text-danger text-center mb-1">{{ error }}</small>
{% endfor %}
<span class="form-text text-muted help_text mb-3">One post must be entered per line.</span>
<div class="mb-3">
<b>{{ form.data.label }}</b>
{{ form.data }}
<span class="form-text text-muted help_text">One post must be entered per line.</span>
{% for error in form.data.errors %}
<small class="form-text text-danger text-center">{{ error }}</small>
{% endfor %}
</div>

<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" id="data-addon">{{ form.data_file.label }}</span>
</div>
<div class="custom-file">
{{ form.data_file }}
<label class="custom-file-label" for="datafile">Choose File (*.txt, *.csv)</label>
<div class="mb-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" id="data-addon">{{ form.data_file.label }}</span>
</div>
<div class="custom-file">
{{ form.data_file }}
<label class="custom-file-label" for="datafile">Choose File (*.txt, *.csv)</label>
</div>
</div>
<div class="form-text text-muted help_text">{{ form.data_file.help_text }}</div>
<div class="form-text text-muted help_text">One post must be entered per line (row).</div>
{% for error in form.data_file.errors %}
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>
{% for error in form.data_file.errors %}
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
<div class="form-text text-muted help_text">{{ form.data_file.help_text }}</div>
<div class="form-text text-muted help_text mb-3">One post must be entered per line (row).</div>

<div class="row">
<div class="row mb-3">
<div class="col">
<b>{{ form.node_num.label }}</b> {{ form.node_num }}
<span class="form-text text-muted help_text mb-3">{{ form.node_num.help_text }}</span>
<span class="form-text text-muted help_text">{{ form.node_num.help_text }}</span>
{% for error in form.node_num.errors %}
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>
<div class="col">
<b>{{ form.theme.label }}</b> {% render_field form.theme class="form-control mb-3" %}
<b>{{ form.theme.label }}</b> {{ form.theme }}
</div>
</div>

<button class="btn btn-outline-info btn-block dropdown-toggle" type="button" data-toggle="collapse" data-target="#detail-config" aria-expanded="false" aria-controls="detail-config"><b>Detail Configuration</b></button>
<div class="collapse" id="detail-config">
<div class="card card-body mt-1">
<div class="card card-body">

<div class="container-fluid">

<div class="row">
<div class="row mb-3">

<div class="col">
<b>{{ form.edge_remove_threshold.label }}</b> {{ form.edge_remove_threshold }}
Expand All @@ -68,62 +75,66 @@ <h2 class="text-center m-3"><b>Semantic Network Analysis</b> <span class="badge
<label class="btn btn-secondary btn-block active text-light">
{% render_field form.remove_isolated_node autocomplete="off" %}Remove Isolated Node
</label>
<span class="form-text text-muted help_text mb-3">{{ form.remove_isolated_node.help_text }}</span>
<span class="form-text text-muted help_text">{{ form.remove_isolated_node.help_text }}</span>
</div>
</div>

</div>

<div class="row">
<div class="row mb-3">

<div class="col">
<b>{{ form.stopwords.label }}</b> {{ form.stopwords }}
<span class="form-text text-muted help_text mb-3">{{ form.stopwords.help_text }}</span>
<span class="form-text text-muted help_text">{{ form.stopwords.help_text }}</span>
</div>

<div class="col">
<b>{{ form.word_len_min.label }}</b> {{ form.word_len_min }}
{% for error in form.word_len_min.errors %}
<small class="form-text text-danger mb-3">{{ error }}</small>
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>

</div>

<b>{{ form.iterations.label }}</b> {{ form.iterations }}
{% for error in form.iterations.errors %}
<small class="form-text text-danger mb-3">{{ error }}</small>
{% endfor %}
<div class="mb-3">
<b>{{ form.iterations.label }}</b> {{ form.iterations }}
{% for error in form.iterations.errors %}
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>

<div class="mt-3"><b>{{ form.layout.label }}</b></div> {{ form.layout }}
<div class="mb-3">
<b>{{ form.layout.label }}</b> {{ form.layout }}
</div>

<div class="row">

<div class="col">
<button class="btn btn-outline-info btn-block dropdown-toggle mb-3" type="button" data-toggle="collapse" data-target="#fr-config" aria-expanded="false" aria-controls="fr-config">Layout: Fruchterman Reingold Config</button>
<button class="btn btn-outline-info btn-block dropdown-toggle" type="button" data-toggle="collapse" data-target="#fr-config" aria-expanded="false" aria-controls="fr-config">Layout: Fruchterman Reingold Config</button>
<div class="collapse" id="fr-config">
<div class="card card-body mb-3">
<div class="card card-body">
<div class="container-fluid">
<b>{{ form.fr_k.label }}</b> {{ form.fr_k }}
<span class="form-text text-muted help_text">{{ form.fr_k.help_text }}</span>
<a href="https://networkx.github.io/documentation/networkx-1.9/reference/generated/networkx.drawing.layout.spring_layout.html" target="_blank"><small class="form-text">See Detail Explanation</small></a>
{% for error in form.fr_k.errors %}
<small class="form-text text-danger mb-1">{{ error }}</small>
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
<span class="form-text text-muted help_text mb-1">{{ form.fr_k.help_text }}</span>
<a href="https://networkx.github.io/documentation/networkx-1.9/reference/generated/networkx.drawing.layout.spring_layout.html" target="_blank"><small class="form-text mb-3">See Detail Explanation</small></a>
</div>
</div>
</div>
</div>

<div class="col">
<button class="btn btn-outline-info btn-block dropdown-toggle mb-3" type="button" data-toggle="collapse" data-target="#fa2-config" aria-expanded="false" aria-controls="fa2-config">Layout: ForceAtlas2 Config</button>
<button class="btn btn-outline-info btn-block dropdown-toggle" type="button" data-toggle="collapse" data-target="#fa2-config" aria-expanded="false" aria-controls="fa2-config">Layout: ForceAtlas2 Config</button>
<div class="collapse" id="fa2-config">
<div class="card card-body mb-3">
<div class="card card-body">
<div class="container-fluid">
<b>{{ form.fa2_square.label }}</b> {{ form.fa2_square }}
<b>{{ form.fa2_log_base.label }}</b> {{ form.fa2_log_base }}
{% for error in form.fa2_log_base.errors %}
<small class="form-text text-danger mb-1">{{ error }}</small>
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>
</div>
Expand Down
91 changes: 51 additions & 40 deletions app/templates/viz/viz_configs/wc.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,58 +13,69 @@ <h2 class="m-3 text-center"><b>Word Cloud</b></h2>

{% if form.non_field_errors %}
{% for error in form.non_field_errors %}
<div class="text-center text-danger my-3">{{ error }}</div>
<div class="text-center text-danger">{{ error }}</div>
{% endfor %}
{% endif %}

<b>{{ form.data.label }}</b>
{{ form.data }}
{% for error in form.data.errors %}
<small class="form-text text-danger text-center mb-3">{{ error }}</small>
{% endfor %}
<div class="mb-3">
<b>{{ form.data.label }}</b>
{{ form.data }}
{% for error in form.data.errors %}
<small class="form-text text-danger text-center">{{ error }}</small>
{% endfor %}
</div>

<div class="input-group mt-3">
<div class="input-group-prepend">
<span class="input-group-text" id="data-addon">{{ form.data_file.label }}</span>
</div>
<div class="custom-file">
{{ form.data_file }}
<label class="custom-file-label" for="datafile">Choose File (*.txt, *.csv)</label>
<div class="mb-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" id="data-addon">{{ form.data_file.label }}</span>
</div>
<div class="custom-file">
{{ form.data_file }}
<label class="custom-file-label" for="datafile">Choose File (*.txt, *.csv)</label>
</div>
</div>
<span class="form-text text-muted help_text">{{ form.data_file.help_text }}</span>
{% for error in form.data_file.errors %}
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>
{% for error in form.data_file.errors %}
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
<span class="form-text text-muted help_text mb-3">{{ form.data_file.help_text }}</span>

<button class="btn btn-outline-info btn-block dropdown-toggle" type="button" data-toggle="collapse" data-target="#detail-config" aria-expanded="false" aria-controls="detail-config"><b>Detail Configuration</b></button>
<div class="collapse" id="detail-config">
<div class="card card-body mt-1">
<div class="card card-body">

<div class="container-fluid">
<b>{{ form.max_word_size.label }}</b> {{ form.max_word_size }}
<span class="form-text text-muted help_text mb-1">{{ form.max_word_size.help_text }}</span>
{% for error in form.max_word_size.errors %}
<small class="form-text text-danger mb-3">{{ error }}</small>
{% endfor %}

<b>{{ form.bg_color.label }}</b> {{ form.bg_color }}
<div class="mb-3">
<b>{{ form.max_word_size.label }}</b> {{ form.max_word_size }}
<span class="form-text text-muted help_text">{{ form.max_word_size.help_text }}</span>
{% for error in form.max_word_size.errors %}
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>

<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" id="fontfile-addon">{{ form.font.label }}</span>
</div>
<div class="custom-file">
{{ form.font }}
<label class="custom-file-label" for="fontfile">Choose Font File (*.ttf, *.otf)</label>
<div class="mb-3">
<b>{{ form.bg_color.label }}</b> {{ form.bg_color }}
</div>

<div class="mb-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" id="fontfile-addon">{{ form.font.label }}</span>
</div>
<div class="custom-file">
{{ form.font }}
<label class="custom-file-label" for="fontfile">Choose Font File (*.ttf, *.otf)</label>
</div>
</div>
<span class="form-text text-muted help_text">{{ form.font.help_text }}</span>
{% for error in form.font.errors %}
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>
{% for error in form.font.errors %}
<small class="form-text text-danger mb-3">{{ error }}</small>
{% endfor %}
<span class="form-text text-muted help_text mb-3">{{ form.font.help_text }}</span>

<div class="row">
<div class="row mb-3">

<div class="col">
<div class="input-group">
Expand All @@ -76,15 +87,15 @@ <h2 class="m-3 text-center"><b>Word Cloud</b></h2>
<label class="custom-file-label" for="maskfile">Choose Image File</label>
</div>
</div>
<span class="form-text text-muted help_text mb-3">{{ form.mask.help_text }}</span>
<span class="form-text text-muted help_text">{{ form.mask.help_text }}</span>
</div>

<div class="col">
<div class="btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary btn-block text-light">
{% render_field form.mask_coloring autocomplete="off" %} {{ form.mask_coloring.label }}
</label>
<span class="form-text text-muted help_text mb-3">{{ form.mask_coloring.help_text }}</span>
<span class="form-text text-muted help_text">{{ form.mask_coloring.help_text }}</span>
</div>
</div>

Expand All @@ -94,13 +105,13 @@ <h2 class="m-3 text-center"><b>Word Cloud</b></h2>

<div class="col">
<b>{{ form.stopwords.label }}</b> {{ form.stopwords }}
<span class="form-text text-muted help_text mb-3">{{ form.stopwords.help_text }}</span>
<span class="form-text text-muted help_text">{{ form.stopwords.help_text }}</span>
</div>

<div class="col">
<b>{{ form.word_len_min.label }}</b> {{ form.word_len_min }}
{% for error in form.word_len_min.errors %}
<small class="form-text text-danger mb-3">{{ error }}</small>
<small class="form-text text-danger">{{ error }}</small>
{% endfor %}
</div>

Expand Down
2 changes: 1 addition & 1 deletion app/templates/viz/viz_result_pages/sna.html
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
node.value = node.symbolSize;
node.label = {
normal: {
show: node.symbolSize > 5
show: node.symbolSize > 1
}
};
node.category = node.attributes.modularity_class;
Expand Down
9 changes: 4 additions & 5 deletions app/viz/core/sna.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,12 @@ def gen_gexf_and_pass_partition_data(
# ------ Set Attributes for gexf file ------ #
# Add Node Weight
scaled_weight_list = []
for node_freq in tf_sum_dict_sorted[:node_num]:
# node_freq[0] is node, node_freq[1] is node's frequency
if node_freq[0] in isolated_nodes:
for node, freq in tf_sum_dict_sorted[:node_num]:
if node in isolated_nodes:
continue
else:
scaled_weight = (node_freq[1] * (70 ** 2) / tf_sum_dict_sorted[0][1])**(1/2)
scaled_weight_list.append((node_freq[0], scaled_weight))
scaled_weight = (freq * (70 ** 2) / tf_sum_dict_sorted[0][1])**(1/2)
scaled_weight_list.append((node, scaled_weight))

scaled_weight_dict = dict(scaled_weight_list)

Expand Down
2 changes: 1 addition & 1 deletion app/viz/forms/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class VizBaseForm(forms.Form):
initial=2,
widget=forms.NumberInput(
attrs={
'class': 'form-control mb-1',
'class': 'form-control',
},
),
)
Expand Down
Loading

0 comments on commit 5e4435d

Please sign in to comment.